Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2011-01

Modificar registros Sqlite

7 messages · 3 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Rafel Rocaspana

Hola compa�eros/as,

resulta que me he enganchado en una cosa aparentemente simple al intentar cambiar el tipo de base de datos *.dbf a *sql.

En un formulario ten�a un TDbf, su DataSource y un DBGrid. Por el DBGrid puedo desplazarme, modificar datos en las celdas y al llegar al �ltimo registro con la "flecha abajo" insertar un nuevo registro para ir rellenando la tabla con nuevos registros. Todos estos datos quedan guardados en la tabla al salir del programa.

Al intentar migrar a SQlite me encuentro que no consigo que la tabla se guarde al salir de la aplicaci�n. Prob� diferentes opciones:

1. Sqlite3Dataset1 + DataSource + DBGrid (por muchas propieades que modifique no consigo que me guarde cambios)
2. Zeos: ZConnection + ZTable + DBGRids (en este caso si a�ado nuevos registros se guardan pero si hago modificaciones en registros ya guardados no se me guardan .... no entiendo porque lo nuevo se guarda y lo otro no)

En alguna cosa me pierdo, pueden echarme un cable?

R a f a

Reply by email

José Mejuto
to Rafel Rocaspana

Hello Rafel,

Wednesday, January 5, 2011, 9:39:22 AM, you wrote:

RR> Al intentar migrar a SQlite me encuentro que no consigo que la tabla se RR> guarde al salir de la aplicaci�n. Prob� diferentes opciones: RR> 1. Sqlite3Dataset1 + DataSource + DBGrid (por muchas propieades que RR> modifique no consigo que me guarde cambios) RR> 2. Zeos: ZConnection + ZTable + DBGRids (en este caso si a�ado nuevos RR> registros se guardan pero si hago modificaciones en registros ya RR> guardados no se me guardan .... no entiendo porque lo nuevo se RR> guarda y lo otro no)
RR> En alguna cosa me pierdo, pueden echarme un cable?

Para confirmar los cambios necesitar�s un ApplyUpdates, o un Commit seg�n uses datasets o directamente sobre la transacci�n.

Best regards, Jos�

Reply by email

Rafel Rocaspana
to José Mejuto

Hola Jos�,

en el dbgrid modifico datos y en el proceso Form.Close tengo puesto ApplyUpdates pero no guarda los cambios. Qu� hago mal ?

Rafel

Al 05/01/2011 11:48, En/na Jos� Mejuto ha escrit:

Show quoted text 17 lines
Hello Rafel, Wednesday, January 5, 2011, 9:39:22 AM, you wrote: RR> Al intentar migrar a SQlite me encuentro que no consigo que la tabla se RR> guarde al salir de la aplicaci�n. Prob� diferentes opciones: RR> 1. Sqlite3Dataset1 + DataSource + DBGrid (por muchas propieades que RR> modifique no consigo que me guarde cambios) RR> 2. Zeos: ZConnection + ZTable + DBGRids (en este caso si a�ado nuevos RR> registros se guardan pero si hago modificaciones en registros ya RR> guardados no se me guardan .... no entiendo porque lo nuevo se RR> guarda y lo otro no) RR> En alguna cosa me pierdo, pueden echarme un cable? Para confirmar los cambios necesitar�s un ApplyUpdates, o un Commit seg�n uses datasets o directamente sobre la transacci�n.

Reply by email

José Mejuto
to Rafel Rocaspana

Hello Rafel,

Wednesday, January 5, 2011, 12:04:56 PM, you wrote:

RR> en el dbgrid modifico datos y en el proceso Form.Close tengo puesto RR> ApplyUpdates pero no guarda los cambios. Qu� hago mal ?

No sabr�a decirte, sqlite s�lo lo uso en c�digo, nunca lo he usado con componentes visuales y Zeos no lo uso, s�lo SQLdb :-? y no es que tenga mucha experiencia con componentes visuales y bases de datos.

Aqu� hay gente que usa Zeos, as� que supongo que alguno podr� darte pistas, pero ser�a interesante que pusieras que versi�n de Lazarus usas, as� como qu� versi�n de Zeos.

Best regards, Jos�

Reply by email

Paola Bruccoleri
to Rafel Rocaspana: en el dbgrid modifico datos y en el proceso Form.Close tengo puesto ApplyUpdates pero no…

El 05/01/2011 09:04 a.m., Rafel Rocaspana escribi�:

Show quoted text 6 lines
Hola Jos�, en el dbgrid modifico datos y en el proceso Form.Close tengo puesto ApplyUpdates pero no guarda los cambios. Qu� hago mal ? Rafel

Hola Rafael..
Yo particularmente he tenido algunos problemas con los edit, post, applyupdates, etc, usando zeos con firebird; me pasaba lo mismo que a t�.. Decid� en vez de usar esa forma de actualizar, cargar en un form los datos de la bd en edits y luego al aceptar los cambios, hacer inserts o updates (seg�n) usando tzquerys..
(uso el zeos 7.0.0)
chauuuuuuuu

Reply by email

Rafel Rocaspana
to José Mejuto: RR> en el dbgrid modifico datos y en el proceso Form.Close tengo puesto RR> ApplyUpdates…

Hola Jos�,

el problema estaba en no conocer como funcionan las BD Sqlite. No ten�a definido el 'Primari Key' y por eso no me guardaba los cambios. A partir de all� lo he podido modificar todo y adaptar el formulario con Sqlite3Dataset1 y un DataSource, minimizando los componentes y sin usar Zeos.

Para que funcione en el Sqlite3Dataset tiene que indicarse en la propiedad 'PrimaryKey' el nombre del campo con dicho �ndice en la BD.

A partir de aqu� todo funciona perfectamente:

* Me puedo desplazar por el Grid modificando los campos necesarios
* Puedo insertar nuevos cambios o con el 'Insert' del DBNavigator o directamente llegando al �ltimo registro del Grid con la tecla 'flecha abajo'
* El campo PrimaryKey lo defin� como un campo �nico (ID del 1 en adelante) de tal forma que al ir a un registro nuevo directamente escribe el siguiente valor
* Puedo hacer que visualice las consultas que quiera mediante el SQL propio del Sqlite3Dataset
* Y para que quede todo guardado en el FormClose le he indicado Sqlite3Dataset1.AppllyUpdates

Espero que esto sirva a alguien y gracias por la ayuda

Al 05/01/2011 13:29, En/na Jos� Mejuto ha escrit:

Show quoted text 15 lines
Hello Rafel, Wednesday, January 5, 2011, 12:04:56 PM, you wrote: RR> en el dbgrid modifico datos y en el proceso Form.Close tengo puesto RR> ApplyUpdates pero no guarda los cambios. Qu� hago mal ? No sabr�a decirte, sqlite s�lo lo uso en c�digo, nunca lo he usado con componentes visuales y Zeos no lo uso, s�lo SQLdb :-? y no es que tenga mucha experiencia con componentes visuales y bases de datos. Aqu� hay gente que usa Zeos, as� que supongo que alguno podr� darte pistas, pero ser�a interesante que pusieras que versi�n de Lazarus usas, as� como qu� versi�n de Zeos.

Reply by email