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)
-   -   Actualizacion de datos (https://www.clubdelphi.com/foros/showthread.php?t=12187)

bbjb 08-07-2004 17:40:19

Actualizacion de datos
 
Me está sucendiendo algo que estoy flipando.

Tengo unos dbedit controlados por un dbnavigator, que están conectados a una tabla cuyos campos modifico a través del programa a mi antojo, pero cuando cierro el programa resulta que ninguno de los cambios se ha guardado, es como si no hubiera estado haciendo nada.

¿Alguien lo entiende??????? :confused: :confused:

marcoszorrilla 08-07-2004 17:45:28

Bueno te queda decirnos con que tablas trabajas.

Te faltará:
FlushBuffers si se trata de Paradox
o en otros casos:
Commit

Y convendría que mostrarás el código con el que supuetamente guardas los datos.

Un Saludo.

bbjb 08-07-2004 17:50:27

Perdona, pero es tal el estado de nervios en que me está poniendo el programa que he dado por sabido todos esos puntos.

Se trata de una Base de Datos Informix y no apenas utilizo código, puesto que es tan sumamente simple lo que llevo echo q apenas me ha hecho falta, y lo que utilizo es para dar valores a variables.

Estoy desconcertado!!!!!

jachguate 08-07-2004 19:46:16

Hola.

Realmente hay muy poca información como para saber por donde va el error.

Supongo que haces un dataset.edit o bien dataset.insert antes de "modificar los campos a tu antojo".

Lo que no has aclarado, es si haces Post sobre estos datasets.

Tampoco has indicado que componentes usas para conectarte, y es probable que no tengan transacciones implicitas, con lo que te faltaría hacer commit (como ha lo ha dicho marcos).

Hasta luego.

;)

bbjb 12-07-2004 17:02:08

El problema estaba en la propiedad CachedUpdate que la tengo puesta a True para poder acceder a los valores antiguos del registro:
Query1.Fields[i].OldValue.

De este modo, todo quedaba en cache hasta que utilice Query1.FlushBuffers

Muchas gracias por su tiempo.

jachguate 12-07-2004 17:24:53

Entiendo que de hecho, todo aquello mantenido en cache, debiera ser vaciado a la base de datos con el método ApplyUpdates, y no con FlushBuffers. Además, en el contexto de una transacción.

Te recomiendo revisar tu aplicación.

Hasta luego.

;)

bbjb 12-07-2004 17:46:36

Tienes razón, con FlushBuffers no me hace el volcado de la cache, a pesar de dar esa impresión a primera vista.

He optado por utilizar Query1.ApplyUpdates pero me da un error diciendome lo siguiente: "Exception class EDBEngineError with message 'Capability not supported' .... "

Sabés porque puede ser???

bbjb 12-07-2004 17:52:03

jachguate, ruego que me disculpes.
Al utilizar ApplyUpdates el refresco de cache es perfecto, la aplicación funciona a las mil maravillas.

De nuevo te agradezco el tiempo prestado.


La franja horaria es GMT +2. Ahora son las 00:45:34.

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