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)
-   -   Table.Edit, Table.Post no actualiza registro en FireDAC conectado a SQLite (https://www.clubdelphi.com/foros/showthread.php?t=90691)

movorack 12-08-2016 23:25:57

Table.Edit, Table.Post no actualiza registro en FireDAC conectado a SQLite
 
Saludos compañeros.

Tengo un pequeño inconveniente con SQLLite y le estoy dando vueltas sin poder solucionarlo. Hasta ahora uso este engine y he tenido que leer mucho para solucionar algunos inconvenientes pero con este no he podido hasta ahora.

Tengo una tabla en SQLite conectada a mi aplicación con FireDAC. En una función del programa inserto o actualizo los registros dependiendo si existen o no. la inserción funciona correctamente pero la actualización, aunque no me genera error y mientras la aplicación está corriendo el valor del campo actualizado es el nuevo valor; Al cerrar la aplicación el valor no se actualiza en el archivo .sqlite

Código Delphi [-]
    if TblParamGene.Locate('PARGECODI', pStPargeCodi, []) then
      TblParamGene.Edit
    else
    begin
      TblParamGene.Append;
      TblParamGenePARGECODI.AsString := pStPargeCodi;
    end;

    TblParamGenePARGETIPO.AsString := pChPargeTipo;
    TblParamGenePARGEDESC.AsString := pStPargeDesc;
    TblParamGenePARGEVALO.AsString := pStPargeValo;
    TblParamGene.Post;

He verificado si la conexión está en una transacción para hacer commit sin resultado satisfactorio
En los params de la conexión he des-habilitado el SharedCache
Como dije antes: mientras la aplicación está corriendo el valor del campo actualizado es el nuevo valor.

Puedo hacer un update en lugar de lo que estoy haciendo, si. Pero no comprendo porque no funciona la actualización de este modo y si agradecía mucho su colaboración para resolver esta duda.

(Por ahí vi que TopX anda bastante activo y colaborador en estos días :D)

movorack 12-08-2016 23:41:46

En UpdateOptions también modifiqué el KeyFields agregando la primary key de la tabla y aún no soluciono el inconveniente. :)

movorack 13-08-2016 00:23:20

Ya pude realizar la operación pero no entiendo el porque del error.

En el evento OnUpdateRecord de la alimentación de unos campos

Código Delphi [-]
  TblParamGeneSYSTEUSUA.AsString   := gStSystUsua;
  TblParamGeneSYSTEFECH.AsDateTime := Now;
  TblParamGeneSYSTEOPER.AsString   := 'U';
Cuando tengo un evento asociado al OnUpdateRecord no actualiza en el archivo, al desasociarlo si actualiza.

TOPX 13-08-2016 04:18:16

Saludos.

Entonces podría ser por el parámetro AAction, pues falta ponerle el valor apropiado al final.

~ http://docwiki.embarcadero.com/Libra...rd#Description

-

movorack 16-08-2016 19:40:29

Gracias Topx pero no eso no funcionó tampoco.

Cambié a firebird, usando los mismos componentes y el funcionamiento es igual.


La franja horaria es GMT +2. Ahora son las 01:55:53.

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