amadis
07-11-2019, 17:49:37
Que tal compañeros,
Les cuento que estoy incursionando en aplicaciones multiplataforma FMX.
Estoy trabajando con SQLite . (Administrado con SQLiteStudio 3.2.1) Sqlite.dll version 3.24.
Intento actualizar una DB Sqlite que estará en el movil desde datos que tengo en un ClientDataSet.
Eso lo pensaba hacer de la siguiente manera:
INSERT INTO articulos
(id, l1, l2, articulo,iva)
values (123, 22, 33,'Artic',5)
ON CONFLICT(id)
DO UPDATE
SET l1= 22, l2 = 33, iva = 5
WHERE id = 123
Pero al ejecutarlo, tanto en win32 como Android, obtengo el siguiente error
FireDac[Phys][SQLite]error: NEAR "ON" syntax error
Se me ocurre que puede ser porque por lo que vi la sentencia UPSERT Es soportada desde la version 3.24 de SQLite.
Si ejecuto lo mismo desde SqliteStudio todo funciona correctamente. (El SqliteStudio vino acompañado de la dll 3.24 de Sqlite.
He intentado acompañar mi Exe con la misma dll pero no funciona.
Y menos lo de android.
¿como saber que version Sqlite trae el android? o se puede distribuir de alguna forma el sqlite de android??
¿de que otra forma puedo hacer una actualización de un Id existente, o si no ingresar el nuevo registro
No me convence la idea de hacer una consulta por id, si resulta cero inserto o de lo contrario actualizo, por eso buscaba algo como lo que cité arriba.
Desde ya muchas gracias por su tiempo
Les cuento que estoy incursionando en aplicaciones multiplataforma FMX.
Estoy trabajando con SQLite . (Administrado con SQLiteStudio 3.2.1) Sqlite.dll version 3.24.
Intento actualizar una DB Sqlite que estará en el movil desde datos que tengo en un ClientDataSet.
Eso lo pensaba hacer de la siguiente manera:
INSERT INTO articulos
(id, l1, l2, articulo,iva)
values (123, 22, 33,'Artic',5)
ON CONFLICT(id)
DO UPDATE
SET l1= 22, l2 = 33, iva = 5
WHERE id = 123
Pero al ejecutarlo, tanto en win32 como Android, obtengo el siguiente error
FireDac[Phys][SQLite]error: NEAR "ON" syntax error
Se me ocurre que puede ser porque por lo que vi la sentencia UPSERT Es soportada desde la version 3.24 de SQLite.
Si ejecuto lo mismo desde SqliteStudio todo funciona correctamente. (El SqliteStudio vino acompañado de la dll 3.24 de Sqlite.
He intentado acompañar mi Exe con la misma dll pero no funciona.
Y menos lo de android.
¿como saber que version Sqlite trae el android? o se puede distribuir de alguna forma el sqlite de android??
¿de que otra forma puedo hacer una actualización de un Id existente, o si no ingresar el nuevo registro
No me convence la idea de hacer una consulta por id, si resulta cero inserto o de lo contrario actualizo, por eso buscaba algo como lo que cité arriba.
Desde ya muchas gracias por su tiempo