es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de Delphi FireDAC al trabajar con parámetros de SQLite

Buenos días.

Tengo un problema que no logro entender. La situación es la siguiente:
Tengo un procedimiento al que llamo pasándole una cadena, que básicamente es el nombre de una tabla.
En este caso en particular es “sys”.

Este procedimiento ejecuta básicamente las siguientes líneas:

Query.Close();
Query.ParamByName(‘TABLE’).AsString := Table;
Query.Open;

“Query” básicamente tiene esto:

SELECT * FROM: TABLE;

Por lo tanto, debes ejecutar lo siguiente:

SELECT * FROM sys;

¿Verdad?

Bueno, aparentemente tengo un error. Ya que al probarlo y ejecutar mi procedimiento, esto sucede:

[FireDAC] [Phys] [SQLite] ERROR: cerca de “: TABLE:” error de sintaxis.

  • ¿SQLite funciona de manera diferente con parámetros? *
    No puedo encontrar por qué falla.
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hola,

    Parece que el error que estás experimentando está relacionado con el uso de parámetros en tu consulta. SQLite permite el uso de parámetros en las consultas, pero necesitan estar correctamente formateados.

    En tu caso, parece que el parámetro no está siendo correctamente reemplazado con el valor que le pasas. Una posible solución sería reemplazar el parámetro “:TABLA” con “?”, que es un marcador utilizado por SQLite para los parámetros.

    Tu código quedaría así:

    Query.Close();
    Query.ParamByName('TABLA').AsString := Table;
    Query.SQL.Text := 'SELECT * FROM ?';
    Query.Open;
    

    Esto debería reemplazar correctamente el parámetro con el valor que le pasas.

    Espero que esto te ayude. Avísame si tienes alguna otra pregunta.

Comments are closed.