Ver Mensaje Individual
  #5  
Antiguo 11-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Las fechas son algo especiales, porque se pueden pasr en varios formatos :
dd/mm/yyyy
mm/dd/yyyy
yyyy/mm/dd

Es mejor que Delphi sea el que busque el formato adecuado para este tipo de datos, así que usamos parámetros:
Código Delphi [-]
      With dm.QBusKardex do
        begin
          Close;
          SQL.Clear;

          sqlKardex:= 'Select * from tb_Kardex where %s = %s AND FechaTransaccion BETWEEN : prFechaInicio AND : prFechaFin';
          SQL.Text := Format(sqlKardex,
                          ['idArtEan',
                          QuotedStr(ResArticulo)]);
    // hemos usado la técnica anterior para establecer parte del SQL, 
   // ahora usamos la otra técnica:
     Parambyname('prFechaInicio').AsDatetime := dtFechaInicio.Date;
     Parambyname('prFechaFin').AsDatetime := dtFechaFinal.Date;
          Open;

En este caso queda algo engorrosa la consulta, pero el nombre de un campo (IdArtEan) no puede pasarse por parámetros. el uso de parámetros en una consulta simple sería:

Código Delphi [-]
   query1.sql.text := ' SELECT * FROM TABLA WHERE Codigo = : prCodigo AND FECHA BETWEEN  : pr1 AND : pr2' ;
  query1.Parambyname('pr1').AsDateTime := now;
  query1.Parambyname('pr2').AsDateTime := now + 4;
  query1.Parambyname('prCodigo').AsInteger := 23;
  query1.Open;
Como ves, a todos los parámetros de la consulta le pongo el prefijo "pr" delante, más que nada por claridad para mí. Simplemente con anteponer los dos puntos ":" a cualquier nombre, ya delphi lo interpreta como un parámetro.

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