Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20110104/a8c60e81/attachment.html>
Mailing lists / lazarus-es / 2011-01
Modificar registros Sqlite
7 messages · 3 people · –
- RRafel Rocaspana 4
- JJosé Mejuto 2
- PPaola Bruccoleri 1
Reply by email Subscribe to this list Your subscription
Read-only archive. Use j and k to move between messages.
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
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.
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, 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.
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 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
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:
