Sqlite + DBGrid
#1
Escrito 04 marzo 2014 - 09:05
Jesus
#2
Escrito 05 marzo 2014 - 06:07
¿Qué componentes usas de FireDAC? Usualmente con un TFDQuery es más que suficiente, simplemente le indicas cual es el campo de la clave primaria.
A modo de ejemplo, enlaza un TDBNavigator y podrás observar el estado del DataSet a medida que le das uso.
En caso de que esto no funcione, muéstranos tu código.
#3
Escrito 05 marzo 2014 - 01:17
#4
Escrito 05 marzo 2014 - 02:26
Hola Rolphy, gracias por responder. Utilizo un FDConnection, un FDQuery, Un Datasource, un FDPhysSQliteDriverLink y un DBGrid. Como hago eso que dices?, con que propiedad del FDQuery?. Gracias. Saludos. Jesus
Aunque no he usado aún los FireDac (me ha dado últimamente el mal del puerco , chiste local, perdón ) me parece que podrías usar otro componente en lugar del FDQuery, no se si exista FDDataSet o algo así.
Saludos
#5
Escrito 05 marzo 2014 - 02:45
Manejo sqlite y uso un datasource para actualizar directamente sobre el grid. No es de mi agrado, pero pudieras usar un dbnavigator, para poder hacer el post directo.
Saludos!!
.. Ah pos esto ya te lo escribió Rolphi. Un db navigator es la solución supongo.
Eliseo, cuiiiiiiiiiiiii!!!! cuiiiiiiiiiiiiiiiiiii!!! chale con el mal del E-Go
Saludos!!
#6
Escrito 05 marzo 2014 - 03:30
Egostar, Fercastro, gracias por las sugerencias. No hay FDDataset Egostar,..hay otras componentes que me suenan de haberlas visto aqui y alla por Internet para hacer esto que digo que son el FDTransaction y el FDUpdateSQL. FerCastro,...como haces tu el Post directo?,..te importaria poner aqui el codigo?....Hice lo que me dijo Rolphy..pongo el FDNavigator y veo como varia el DBGrid, pero nada mas,.....como utilizo el Navigator para hacer el Post?...tengo que ir haciendo los Insert/Update registro a registro?,..hay alguna propiedad del FDQuery/FDNavigator/Datasource/FDConnection que lo haga directamente?....
Muchas gracias
Saludos
Jesus
#7
Escrito 06 marzo 2014 - 06:05
Esta sería la combinación:
TFDConnection -> TFDQuery
TDataSource -> TFDQuery
TDBGrid -> TDataSource
TDBNavigator -> TDataSource
En el evento OnCreate u OnShow del Formulario activas tu conexión (TFDConnection.Connected) y también el DataSet (TFDQuery.Open); con esos pasos deberías poder manipular todo a través del Navigator para ver trabajar el DataSet.
De hecho, por lo menos cuando era AnyDAC, estos componentes tienen unos ejemplos y dentro de ellos una carpeta Getting Start.
#8
Escrito 06 marzo 2014 - 08:01
Gracias
Saludos
Jesus
#9
Escrito 06 marzo 2014 - 08:05
Así sin mostrarnos parte de tu código de ejemplo es complicado ayudarte.
Fuera de eso, se me ocurre tal vez que la propiedad CacheUpdates esta activa.
#10
Escrito 06 marzo 2014 - 09:02
Ahora mismo el codigo es un batiburrillo de cosas en plan prueba y error,..cuando consiga algo lo pondre. CacheUpdate debe estar a False?
Gracias
Saludos
Jesus
#11
Escrito 06 marzo 2014 - 09:04
Para esta prueba que andas haciendo CacheUpdate debe tener valor False.
Cuando conozcas mejor el uso del componente como tal entonces te recomiendo que te leas la ayuda sobre la propiedad CacheUpdate.
#12
Escrito 06 marzo 2014 - 03:18
Gracias
Jesus
#13
Escrito 07 marzo 2014 - 05:51
Gracias a todos,..deje por imposible hacerlo con SQlite y lo he hecho con MsAccess sin problemas, como la seda.....No debera ir muy fino Firedac con Sqlite, no se....En fin, resuelto. Gracias otra vez.
Saludos
Jesus
#14
Escrito 07 marzo 2014 - 05:56
Hola,
Gracias a todos,..deje por imposible hacerlo con SQlite y lo he hecho con MsAccess sin problemas, como la seda.....No debera ir muy fino Firedac con Sqlite, no se....En fin, resuelto. Gracias otra vez.
Saludos
Jesus
Saludos.
Si quieres seguir intentando visita el foro de AnyDAC, he visto que varias personas han logrado hacerlo andar.
Suerte!!
#15
Escrito 07 marzo 2014 - 09:52
Hola,
Gracias a todos,..deje por imposible hacerlo con SQlite y lo he hecho con MsAccess sin problemas, como la seda.....No debera ir muy fino Firedac con Sqlite, no se....En fin, resuelto. Gracias otra vez.
Saludos
Jesus
Hola
Perdon por no haber revisado en tiempo estos mensaes, pero no logro expulsar la hueva.
Primero, no se si voy a preguntar algo obvio, pero pues lo pregunto antes de sacar conclusiones. La conexión hacia los datos la haces:
TABLA <----> oQUERY <----> DATASOURCE <----> GRID
O Bien:
TABLA <----> oTABLE <----> DATASOURCE <----> GRID
Porque existen varias diferencias para el manejo de tus datos cuando tu dataset es un query/stored procedure o un objeto TTable. Teno entendido (por favor si estoy diciendo incoherencias diganme) que cuando manejas query o stored procedure no puedes hacer un manejo de datos directo a través del grid. Esto solo lo haces cuando usas un objeto TTable como dataset.
Ahora bien, si tu dataset es un objeto TTable, con un simple DBNavigator podrás modificar los datos de tu tabla de manera directa desde el grid. Pero si tu grid despliega datos desde un dataset que hace referencia a un cursor de un query o un stored procedure entonces vas a tener que programar el update/post/delete para los registros de tu grid.
No se si he sido claro, la verdad es que no es mucha ciencia, quizá deberías comentar cual es el proceso y los objetos que usas para conectar tus datos al grid.
Saludos!! y estamos en contacto
- SQLite
- Delphi XE
- Devart UNIDAC
Si te sirve:
http://gfernando.blo...search?q=sqlite
#16
Escrito 08 marzo 2014 - 05:47
Gracias
Saludos
Jesus