Ver Mensaje Individual
  #2  
Antiguo 19-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Comencemos aclarando que mi nombre no es Ramón, sino Román.

Pasado este álgido punto te comento que a juzgar por lo que veo en tu código los parámetros en tu consulta sql están mal especificados. Cada parámetro debe estar antecedido de ':'

Código:
SELECT DISTINCT COD_CLIE, REFER from CUENTAS
WHERE COD_CLIE=:a1 and FECHA_CORTE<=:a2
Por otra parte, cuando asignes los valores de los parámetros es mejor usar ParamByName(...).AsXXX para que la conversión de tipos de datos sea correcta:

Código:
Query1.ParamByName('a1').AsInteger := CLIENTESCOD_CLIE.value;
Query1.ParamByName('a2').AsDate := fecha
(Aquí estoy suponiendo que el campo COD_CLIE es un entero)

Por otra parte, no creo que usar Query1.Unprepare sirva para liberar recursos y de hecho no tiene mucho sentido usar Unprepare y Prepare cada vez que ejecutes la consulta. El método Prepare sirve para consultas parametrizadas que se usan muchas veces y en las que sólo cambia el valor de los parámetros. Prepare 'compila' la consulta de manera que subsecuentes llamadas se realicen más rápidamente y en tal caso se hace una vez antes de muchas consultas del mismo tipo y sólo se usa Unprepare al final de estas muchas consultas. Si la consulta no se usa demasiado no creo que valga mucho la pena usar Prepare y Unprepare.

// Saludos
Responder Con Cita