PDA

Ver la Versión Completa : A veces no se guardan registros...


emeceuy
03-06-2003, 07:23:04
HOLA A TODOS !...

Bueno, ya he terminado el programa que estuve haciendo hace meses, pero me encuentro con cierto problema. El programa usa bases dbase 4 y el "error" ocurre cuando guarda una factura (un par de registros, uno en una base y otro en otra base de datos). No se porqué, de vez en cuando, algo así como 30 veces lo hace bien y 1 mal, uno de esos dos registros no se guarda; aveces esto ocurre con una base y aveces con la otra. Es algo raro, no se porqué. Inclusive agregé "prepare" al query antes de abrirlo porque pensé que lo solucionaría pero no... cada cierta cantidad (que es variable) uno de esos dos registros no se guarda.

Vale la pena destacar que uso tres ordenadores en red, hay uno que es quien tiene las bases de datos y desde los otros dos se define la ruta del query como la ruta del disco duro de la PC principal. De cualquier manera, estos errores no siempre ocurren desde las pc en red, sino que pasa desde cualquiera de las tres...

es algo raro, no? si alguien tiene idea que puede ser, PLEASE HELP !!! porque no sirve que cada tanto falle al gurdar información !!!

bueno, muchas gracias desde ya...

saludos !!!

mArCeLo

marcoszorrilla
03-06-2003, 07:57:50
Mira a ver si le aplicas:
MiTabla o Miquery.Post;
MiTabla o MiQuery.Flushbuffers;


Un Saludo.

emeceuy
04-06-2003, 05:52:03
Marcos...

si uso el query.post, porque sinó no se guardaían nunca los datos y este error ocurre no muy seguido...

flushbuffers nunca probé para que sirve?

marcoszorrilla
04-06-2003, 21:50:15
Este método lo que hace es descargar la memoria tampón en el disco, es decir nos aseguramos de que los datos se graban verdaderamente en la tabla, cosa que ocurriría al cambiar de fila, cerrar la tabla y otros sucesos que pueden ocurrir o no, sobre todo en red, sino forzamos la grabación los otros ususarios no se enterarían de los cambios.

Si eres clippero.

MiTabla->(DbCommit())

En Delphi, se aconseja utilizarlo en el evento afterPost del Ttable o Tquery.

MiTabla.FlushBufers;

Un Saludo.