IBSQL.ExecQuery;
Es para insert, delete update o execute etc.
No es cierto : ExecQuery pone en marcha la consulta sea del tipo que sea.
"pero para para select debes usar open o active:= true;"
No es cierto : Open es una PROPIEDAD y no un PROCEDIMIENTO. Lo único que arroja es el resultado de conocer si el DATASET está abierto o cerrado. Encima es de sólo lectura (como es lógico). Te respondí que Open tambien ejecuta la consulta (a veces me despistan un poco..).
"pero igual tienes un error ya que debes preparar la consulta antes de pasarle el parametro"
"Igual tienes que preparar la consulta" = No sabes lo que dices.
Cuando se ejecuta una consulta muchas veces y lo único que cambia son los valores de búsqueda, para no cargar al servidor con contínuas aperturas y cierres de transacciones se pasan los parámetros a la consulta. El comando PREPARE no es obligatorio pero si aconsejable utilizarlo para preparar esos parámetros precisamente.
En una consulta que sólo se realiza una vez ( ya que después se destruye el IBSL) no es necesario.
Te aconsejo que mires antes de manuales antes de contestar algo que no sabes. Yo me tomo primero mi tiempo en comprobar el código. En caso de no dar con la solución acudo al club para ver si alguien me ayuda, lo que no me ayuda son respuestas a la ligera.
La magia no existe... Te remito a los artículos:
http://delphiallimite.blogspot.com/2...parmetros.html
http://delphiallimite.blogspot.com/2...con-ibsql.html
Saludos.