Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Como seleccionar datos entre fechas ?? (https://www.clubdelphi.com/foros/showthread.php?t=60795)

Jackpg 14-10-2008 16:25:44

Como seleccionar datos entre fechas ??
 
Hola que tal, espero me puedan ayudar, tengo el siguiente problema: Tengo que seleccionar datos contenidos en una base de datos hecha en Access, cuando hago la consulta en Access, me da los datos que asi le pido, ahora, esa misma consulta la inserte en un componente SQL de C++ Builder pero no me envia los datos que pido, sino todo lo contenido en la base de datos, a pesar de que le coloco solo las fechas que yo requiero.

Mi codigo es el siguiente:

En Access:

Cita:

SELECT cheques.che_numero, cheques.che_banco, cheques.che_cliente, cheques.che_rfc, cheques.che_fecha, cheques.che_total
FROM cheques
WHERE (((cheques.che_fecha) Between #9/1/2008# And #9/30/2008#));
En C++ Builder:

Cita:

Query8->Close();
Query8->SQL->Clear();
Query8->SQL->Add("SELECT cheques.che_numero as Numero, cheques.che_banco as Banco, cheques.che_cliente as Proveedor, cheques.che_rfc as RFC, cheques.che_fecha as Fecha, cheques.che_total as Total, cheques.che_cancelado as Estatus");
Query8->SQL->Add("FROM cheques");
Query8->SQL->Add("WHERE (([cheques]![che_fecha] Between #"+DateTimePicker8->Date.DateString()+"# And #"+DateTimePicker7->Date.DateString()+"#))");
Query8->Open();
Gracias de antemano ...

Neftali [Germán.Estévez] 14-10-2008 16:38:03

Tal como lo tienes hay dos posibles fuentes de problemas. Los separadores y el formato de fecha (dd/mm/yyyy o mm/dd/yyy). Posiblemente uno de los dos es el que te está generando el error.

Porqué no pruebas a utilizar parámetros en la consulta; Posiblemente eso te evite ambos problemas.

FGarcia 14-10-2008 21:21:18

Efectivamente si te quieres quitar dolores de cabeza envia parametros, yo lo he hecho asi usando ADO y Access

Código Delphi [-]
With ConsultaTotales1 do
        Begin
          Close;
          SQL.Clear ;
          miSQL := '';
          miSQL := 'SELECT * FROM Captura ' +
'WHERE (HoraFecha BETWEEN :FIni AND :FFin)' +
'ORDER BY Consecutivo';
          SQL.Add(miSQL);
          Parameters.ParamByName('FIni').Value := FechaInicio;
              Parameters.ParamByName('FFin').Value := FechaFinal;
          Open;
 
 
//En el click de un boton envio y formateo, obtengo los datos de un Maskedit
procedure TfrmHoraFecha.Button1Click(Sender: TObject);
var
HInicial, HFinaliza : TDateTime;
begin
  HInicial := StrtoDateTime(meTInicio.Text);
  DateTimetoString(HoraInicio, 'hh:nn:ss am/pm', HInicial);

  HFinaliza := StrtoDateTime(meTFinal.text);
  DateTimetoString(HoraFinal, 'hh:nn:ss am/pm', HFinaliza) ;

  FechaInicio := meFInicio.Text + ' ' + HoraInicio ;
  FechaFinal := meFFin.Text + ' ' + HoraFinal ;

  MDatos.ConsultaHoraFecha ;
  Close;
end;

Jackpg 15-10-2008 16:50:11

:o:o Caray creo que ya vi donde estaba el problema, y es el formato de la fecha, yo la manejo dia/mes/año pero la consulta la pide como mes/dia/año mmmmm creo que la tendre que modificar y darle el formato necesario jejejeje o para ahorrarme pasos tendre que modificar mi configuracion regional y colocarlo como me lo pide la consulta. :D

Neftali [Germán.Estévez] 15-10-2008 17:06:12

Cita:

Empezado por Neftali (Mensaje 319970)
Porqué no pruebas a utilizar parámetros en la consulta

Cita:

Empezado por FGarcia (Mensaje 320065)
si te quieres quitar dolores de cabeza envia parametros

Lo dicho anteriormente.


La franja horaria es GMT +2. Ahora son las 06:27:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi