Ver Mensaje Individual
  #1  
Antiguo 07-11-2019
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Reputación: 20
amadis Va por buen camino
SQLite error: NEAR "ON" syntax error. (UPSERT) FMX

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:

Código SQL [-]
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
Responder Con Cita