Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   perdida de datos en base de datos firebird (https://www.clubdelphi.com/foros/showthread.php?t=63330)

gmontes 09-02-2009 20:58:46

perdida de datos en base de datos firebird
 
ya he tocado este tema antes y no habia notado como se perdian los datos

en mi aplicacion tengo un mensaje de "error al facturar" cuando por algun motivo no se guarda la factura. se reintenta oprimiendo guardar y al parecer se guardan los datos. y siguen facturando y el consecutivo de facturas sigue avanzando y las facturas se imprimen. lo que me parece extraño es que la impresion la hace desde report manager y se supone que toma los datos a imprimir de la base de datos.

en este punto monitoreo el listado de facturas y veo que apartir del "error al facturar" ya no esta guardando las facturas , pero veo en la pc que esta facturando que si avanza el consecutivo e imprime fisicamente las facturas.

¿¿?? eso me confunde. es como si se quedara una sesion abierta tomando y leyendo datos de la base de datos y que al salir del programa se cerrara la sesion y se perdieran de la base de datos esa transaccion.


la base de datos es firebird 1.5.5

alguna respuesta??? :(

jgutti 09-02-2009 21:26:01

despues de un post o al grabar la factura debes cerrar la transacción con
ibtransaction.CommitRetaining;

de esta forma grabas los datos en el disco y se termina la sessión

gmontes 11-02-2009 19:25:47

tengo los componentes zeos y se hace la transaccion con el commit al final y la base de datos esta configurada con el commt retaining.

lo extraño es que puden pasar dias sin que esto se repita. y facturamos bastante.

lo que no recuerdo es si la base de datos esta en superserver o clasic :(

Casimiro Notevi 12-02-2009 01:19:59

Te vaya a pasar lo mismo que un "caso extraño" que nos ha ocurrido a nosotros con un cliente: Este cliente se quejaba de que se le pierde (se borran automáticamente) los partes de trabajo, después de haber sido impresos e incluso pasados algunos días, semanas o meses.
Por lógica eso es imposible porque el programa no tiene ninguna función que elija un parte de trabajo al azar y lo borre.
Pero el cliente y todos los trabajadores insistían en que desaparecían los partes de trabajo... como por arte de magia, así porque sí.
Totalmente desesperados y ya a punto de perder al cliente se me ocurrió ponerle una "actualización" al programa, con ese "parche" quedaría solucionado el problema... y dicho y hecho, me creé una nueva tabla donde se almacenaban los datos del parte de trabajo cuando se borran pulsando el botón "Borrar", además del nombre del ordenador, del usuario, la IP, la fecha y hora, y ya casi sólo faltó hacer una foto con la webcam y guardarla también.
Evidentemente, desde que pusimos ese "parche" ya no se han desaparecido ni un sólo parte de trabajo más, ¿será casualidad?, no sé, no sé... :)


p.d. Evidentemente, el problema es que algún trabajador se dedicaba a borrarlos por algún motivo que desconocemos.

gmontes 12-02-2009 17:55:49

Cita:

Empezado por Casimiro Notevi (Mensaje 337852)

p.d. Evidentemente, el problema es que algún trabajador se dedicaba a borrarlos por algún motivo que desconocemos.

No es nuestro caso :(, pero al menos eso es bueno :D

el problema que tengo me di cuenta que eso pasaba teniendo equipos contiguos. vi cuando facturaron alrededor de 5 facturas continuas y en la que estaba monitoreando no se registraron.

no me queda mas que volver a capturar las facturas y no imprimirlas.

lo extraño es que se pueden facturar de igual forma durante dias y no se pierde nada.
.

por lo pronto voy a cambiar el switch por si las dudas.

gracias

AzidRain 12-02-2009 21:13:44

A ver...¿Como llevas el control de los folios que vas asignando a las facturas que imprimes? Podría ser un error de concurrencia que no estes adviertiendo por alguna excepción que sin querer estés ocultando. Esto es si el equipo a toma una factura el sistema le da el numero 1 digamos, mientras esto pasa el equipo 2 toma una factura tb y el sistema le da tb el numero 1 (no puede darle el 2 pq la transaccion del otro equipo anterior no ha sido finalizada). El equipo 2 se apura y graba sus cambios. Ahora el equipo 1 hace lo propio y voila, desaparece lo capturado por el equipo 2. Es un caso demasiado obvio pero ya lo he visto 2 o tres veces. Por otro lado, es recomendable imprimir solo hasta que el registro ya ha sido guardado y la transaccion finalizada. De lo contrario no hay garantía de qque lo que se está imprimiento efectivamente se encuentre ya almacenado.

AGAG4 13-02-2009 20:43:58

Cita:

Empezado por Casimiro Notevi (Mensaje 337852)
Te vaya a pasar lo mismo que un "caso extraño" que nos ha ocurrido a nosotros con un cliente: Este cliente se quejaba de que se le pierde (se borran automáticamente) los partes de trabajo, después de haber sido impresos e incluso pasados algunos días, semanas o meses.
Por lógica eso es imposible porque el programa no tiene ninguna función que elija un parte de trabajo al azar y lo borre.
Pero el cliente y todos los trabajadores insistían en que desaparecían los partes de trabajo... como por arte de magia, así porque sí.
Totalmente desesperados y ya a punto de perder al cliente se me ocurrió ponerle una "actualización" al programa, con ese "parche" quedaría solucionado el problema... y dicho y hecho, me creé una nueva tabla donde se almacenaban los datos del parte de trabajo cuando se borran pulsando el botón "Borrar", además del nombre del ordenador, del usuario, la IP, la fecha y hora, y ya casi sólo faltó hacer una foto con la webcam y guardarla también.
Evidentemente, desde que pusimos ese "parche" ya no se han desaparecido ni un sólo parte de trabajo más, ¿será casualidad?, no sé, no sé... :)


p.d. Evidentemente, el problema es que algún trabajador se dedicaba a borrarlos por algún motivo que desconocemos.

Eso tambien me ha pasado, con tan solo decirles a los usuarios, instale una bitacora que me informará porque motivo sucede X error ó se borran X registros, con eso y por arte de magia ya no sucede la bronca que mucho tiempo llego a crear dolores de cabeza y preocupaciones, desafortunadamente hay muchos usuarios "Traviesos", que comenten la burrada de eliminar algo y le echan la culpa al sistema....

gmontes 14-02-2009 06:39:21

Cita:

Empezado por AzidRain (Mensaje 337974)
A ver...¿Como llevas el control de los folios que vas asignando a las facturas que imprimes? Podría ser un error de concurrencia que no estes adviertiendo por alguna excepción que sin querer estés ocultando. Esto es si el equipo a toma una factura el sistema le da el numero 1 digamos, mientras esto pasa el equipo 2 toma una factura tb y el sistema le da tb el numero 1 (no puede darle el 2 pq la transaccion del otro equipo anterior no ha sido finalizada). El equipo 2 se apura y graba sus cambios. Ahora el equipo 1 hace lo propio y voila, desaparece lo capturado por el equipo 2. Es un caso demasiado obvio pero ya lo he visto 2 o tres veces. Por otro lado, es recomendable imprimir solo hasta que el registro ya ha sido guardado y la transaccion finalizada. De lo contrario no hay garantía de qque lo que se está imprimiento efectivamente se encuentre ya almacenado.

creo eue no es nuestro caso, ademas teniamos ya varios años sin error. y puede suceder con tan solo un equipo facturando.
pero es aleatorio


La franja horaria es GMT +2. Ahora son las 14:20:25.

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