Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   paradox salva y no salva (https://www.clubdelphi.com/foros/showthread.php?t=19096)

Dantael 04-03-2005 07:29:21

paradox salva y no salva
 
Hola hice una aplicación en delphi 5 con paradox 7 cree un odbc para la BD y lo controlo desde el BDE administrator, e hice la inserción de la siguiente manera

Código Delphi [-]
table1.insert;
table1.['nombrecampo']:=edit1.text;
table1.post;

por ejemplo. Cuando salvaba todo parecia perfecto apagaba la máquina por una media hora y todo bien pero al apagarla por un día todos los registros guardados desaparecian :confused: . El sistema funcionó bien por una semana pero ahora no, luego modifique el código para que quedara de la siguiente manera

Código Delphi [-]
table1.append;
table1.fieldbyname['nombrecampo']:=edit1.text;
table1.post;

de esta forma lo deje y parece funcionar bien no se si es completamente necesario especificar el tipo de dato de la forma table1.fieldbyname['nombrecampo'].as(string):=edit1.text; o si de la forma arriba mencionada está bien, los campos guardados son muy pocos para que se haya salido del límite que tiene paradox para guardar. No sé si de esta forma seguirá generando el error después de que hayan guardado varios registros y que aunque parezca guardar después al apagar el equipo ya no conserve la información. Existe una forma segura de que guarde y GUARDE completamente sin que desaparezca la información. Toda ayuda les agradezco de antemano. :D

Si cambio a access podria ofrecer un resultado diferente? supongo que podría ser el buffer de la tabla pero no se guardan más que cinco registros máximo por día se apaga y se enciende la máquina al otro día. :D :rolleyes:

Lepe 04-03-2005 11:23:01

en el evento AfterPost de la tabla pon Tabla.FlushBuffers para asegurar que se guardan definitivamente.

saludos

Dantael 05-03-2005 07:51:57

problemas
 
muchas gracias lepe pero pues como mi cliente se estaba desesperando demasiado hice un cambio radical e importe toda la base de datos a access ahora si le pongo el table1.flushbuffers me dice que la operación no es soportada parece que todos los cambios los hace pero no sé si al igual que con paradox después de dos semanas parezca salvar y no salve nada. como puedo estar completamente seguro de que la información se quedará en su lugar y no se borrara?
Saludos y gracias nuevamente :D

Lepe 05-03-2005 12:20:22

Paradox no es igual que access, Access es peor todavia :D

En serio, lo único que se puede hacer son muchas pruebas en el entorno del cliente, ya sabes que cada ordenador es un mundo (SO, drivers, dlls cargadas...)

Supongo que el programa que reindexa, no puedes acceder a los fuentes, por tanto no puedes saber la configuración exacta, así que lo único que puedes hacer son PRUEBAS.

Modificar datos:
- con los dos programas abiertos a la misma vez
- con el tuyo cerrado y el otro abierto (y al revés)

Si los datos estan grabados y despues "desaparecen", será por causa del mantenimiento que realiza el programa de paradox, reindexar indices, por ejemplo.

Un caso conflictivo es el siguiente: Abres tu programa y modificas algunos datos, abres el otro programa, y éste realiza una reindexación de los datos mientras tu estas grabando información. Ya tienes 90% de posibilidad de perder esos datos, o de que haya inconsistencias.

Lo que sí puedes intentar es, mirar todos los archivos que puedan ser de configuración en el otro programa, con el bloc de notas, no solo los ficheros .ini sino otros que tenga con extension .dat .cfg u otra que windows no pueda abrirla.

Quizás algun parámetro de configuración pueda guiarte y saber como funciona.

Saludos

pijo 11-03-2005 12:13:43

Si en el entorno del cliente tienes varios ordenadores y en el ordenador que hace de "servidor" tambien trabajan con el programa quizás pueda ser un problema de tener mal configurado el parámetro LOCAL SHARE del BDE. A mi me pasó esa misma situación y lo solucioné poniendo, en mínimo el que hace de "servidor", el parámetro LOCAL SHARE del BDE a true;


La franja horaria es GMT +2. Ahora son las 01:56:47.

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