Ver Mensaje Individual
  #8  
Antiguo 03-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Estarás harto de usar procedimientos con parámetros de entrada ¿verdad? Por ejemplo cuando usas combo.Items.Add('un elemento más'), estas usando un parámetro de tipo texto que se lo das al método "Add". Pues eso mismo se hace aquí pero, con un TIBQuery.

En realidad, el código where debe aparecer así: (sin los emoticones jejeje):
Código Delphi [-]
SQL.Add('WHERE DNI1=DNI2 AND DIA_ENTRADA >= :DESDE_ENTRADA AND DIA_ENTRADA < :HASTA_ENTRADA');

Cuando antepones los dos puntos ":" a un nombre, éste se convierte en un parámetro de entrada, que después se asigna su valor con:
Código Delphi [-]
 Params[0].AsDateTime:=Trunc(Dia);
 Params[1].AsDateTime:=Trunc(Dia+1);

o bien:
Código Delphi [-]
 ParamByName('DESDE_ENTRADA').AsDateTime:=Trunc(Dia);
 ParamByName('hasta_entrada').AsDateTime:=Trunc(Dia+1);

Aquí se ha usado DESDE_ENTRADA y HASTA_ENTRADA, pero puedes poner el nombre que te venga en gana, siempre que no sea igual a una palabra reservada de SQL o nombre de un campo (eso ya es otra historia ).

¿Ventajas?
- Al usar parámetros el SQL queda compilado, las sucesivas ejecuciones son más rápidas, precisamente porque la expresion SQL no ha de evaluarse de nuevo.

- Delphi se encarga de las conversiones de fechas (por ejemplo), ten en cuenta que paradox, Firebird, Oracle, etc pueden usar configuraciones de fecha distintas dd/mm/yyyy o bien mm/dd/yyyy o bien yyyy/mm/dd.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita