Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-08-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
lo mejor es que coloques las transacciones en Sql server.

Pues almacenar la información de facturación en un Xml, enviarla al servidor convertirla a un recorset y guardar los datos en un bloque transaccional con su respectivo manejo de errores.

Colocar las transacciones en los clientes es una mala práctica.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #2  
Antiguo 12-08-2008
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por poliburro Ver Mensaje
lo mejor es que coloques las transacciones en Sql server.

Pues almacenar la información de facturación en un Xml, enviarla al servidor convertirla a un recorset y guardar los datos en un bloque transaccional con su respectivo manejo de errores.

Colocar las transacciones en los clientes es una mala práctica.
hola , gracias por responder ,¿podrias mostrarme un ejemplo?...
__________________
all your base are belong to us
Responder Con Cita
  #3  
Antiguo 12-08-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Pues por lo pronto yo veo un error bastante común (al menos lo he visto es muchos programas).

En tu código al ocurrir una excepción, muestras el mensaje de error y después haces el rollback.

Ahora imagina al clásico usuario al cuál le dan ñañaras las computadoas:

- "ok, hoy si voy a trabajar.. vamos a ver.. crear factura.. capturar... ¡CHANGOS!, esta mugre ya marcó un error...."
Se levanta de su silla, se va a preparar un café, platica con la secretaría, luego va con el guardia a platicar de futbol y después de todo eso va con el de sistemas a reportarle el error.

Durante todo ese tiempo, como nunca le dio aceptar al error, la transacción siguió activa, bloqueando a todos los demás usuarios.

Solución: Ejecuta el RollBack primero y después muestra el error.

Como sugerencia, trataría de hacer las excepciones más específicas y no utilizar el E:Exception, si no la clase del error que estoy esperando, EDBEngine por ejemplo. Y cambiaría el mensaje por: 'Ocurrió un error al intentar guardar. ' +#13+E.ClassName+' - '+E.Message Pero es cosa personal, eso de decir "posteo" no me gusta a mi para nada...
__________________


Última edición por ContraVeneno fecha: 12-08-2008 a las 23:17:49.
Responder Con Cita
  #4  
Antiguo 12-08-2008
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por ContraVeneno Ver Mensaje
Pues por lo pronto yo veo un error bastante común (al menos lo he visto es muchos programas).

En tu código al ocurrir una excepción, muestras el mensaje de error y después haces el rollback.

Ahora imagina al clásico usuario al cuál le dan ñañaras las computadoas:

- "ok, hoy si voy a trabajar.. vamos a ver.. crear factura.. capturar... ¡CHANGOS!, esta mugre ya marcó un error...."
Se levanta de su silla, se va a preparar un café, platica con la secretaría, luego va con el guardia a platicar de futbol y después de todo eso va con el de sistemas a reportarle el error.

Durante todo ese tiempo, como nunca le dio aceptar al error, la transacción siguió activa, bloqueando a todos los demás usuarios.

Solución: Ejecuta el RollBack primero y después muestra el error.

Como sugerencia, trataría de hacer las excepciones más específicas y no utilizar el E:Exception, si no la clase del error que estoy esperando, EDBEngine por ejemplo. Y cambiaría el mensaje por: 'Ocurrió un error al intentar guardar. ' +#13+E.ClassName+' - '+E.Message Pero es cosa personal, eso de decir "posteo" no me gusta a mi para nada...
Gracias por responder amigo ContraVeneno, efectivamente ,estoy deacuerdo con todo le me explicas aqui, esos puntos ya los habia resuelto segun lo que me dices ,lo de Rollback y todo lo demas , esque puse el codigo al vuelo , y lo de Posteo , pos igual no se me ocurrio otra palabra en el momento ... nuevamente gracias por responder
__________________
all your base are belong to us
Responder Con Cita
  #5  
Antiguo 21-08-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por ContraVeneno Ver Mensaje


Durante todo ese tiempo, como nunca le dio aceptar al error, la transacción siguió activa, bloqueando a todos los demás usuarios.

Excelente ejemplo amigo contra, Esa es la gran razón por la que es una malisima práctica colocar las transacciones en los clientes.

a eso agregale que el programa se bloquea antes de lanzar el rollback.

las transacciones deben ser controladas por el manejador de bd
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Manejo de transacciones StartKill MS SQL Server 7 23-09-2008 21:46:53
error en manejo de transacciones JODELSA Varios 1 11-07-2005 16:50:56
Como manejo varias Transacciones a la vez con Access marcoev Tablas planas 2 25-04-2005 21:44:28
Manejo de Transacciones takeo Conexión con bases de datos 0 01-12-2004 05:29:53
Manejo de Transacciones senpiterno Conexión con bases de datos 1 08-10-2004 15:05:34


La franja horaria es GMT +2. Ahora son las 17:22:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi