Cita:
Empezado por AgustinOrtu
Esta vez no te entendi bien
Podes copiarnos el codigo completo para ver como filtras?
Yo tuve ciertos "problemas" a la hora de usar fechas, concretamente con ADO + MS SQL Server 2005 y 2008; eso por usar TDate desde Delphi y tipo Fecha en el campo de la bd. Desde entonces siempre almaceno Fecha/Hora y desde Delphi utilizo TDateTime, indicando explicitamente la Hora. En tu caso por ejemplo el valor completo seria 01-01-2000 00:00:00 (por ejemplo)
Sobre todo en los desde/hasta, termine haciendo esto:
Código Delphi [-]
procedure ListaVentas: TDataSet;
var
Desde, Hasta: TDateTime
begin
Desde := DateTimePicker1.DateTime - TimeOf(DateTimePicker1.DateTime);
Hasta := DateTimePicker2.DateTime;
Hasta := EncodeDateTime(YearOf(Hasta), MonthOf(Hasta), DayOf(Hasta), 0, 0, 0, 0);
with TADOQuery.Create(NIL) do
begin
Connection := DataModule.MainConnection;
SQL.Text := ' SELECT * From Ventas WHERE Fecha BETWEEN :FDesde AND :FHasta ';
with Parameters do
begin
ParamByName('FDesde').DataType := ftDateTime;
ParamByName('FHasta ').DataType := ftDateTime;
ParamByName('FDesde').Value:= Desde;
ParamByName('FHasta ').Value:= Hasta;
end;
Open;
end;
end;
A ver si te sirve!
|
Mi pedazo de codigo de la condicion es asi (tambien tengo un combo box con categorias de productos):
Código Delphi
[-]
if(Form1.Edit1.Text <> ' ') and (Form1.ComboBox1.ItemIndex = -1) and
((CompareDate(EncodeDate(2000, 1, 1), Form1.DateTimePicker2FechasHasta.Date) = 0 ) then
begin
DM.Query_soloTitulo.Close;
DM.ds_queryCategorias.DataSet:=DM.Query_soloTitulo; DM.Query_soloTitulo.Parameters.ParamByName('elString').Value:=Form1.Edit1.Text;
DM.Query_soloTitulo.Open;
end ;
la idea es que si NO cambia la fecha que realice el filtrado en este caso. Pero cuando cambio la fecha dede el DateTimePicker2FechasHasta sigue realizandome el filtrado, y no deberia. Ojala se haya entendido mejor. (solo chequeo si cambia o no la fecha del DateTimePicker para acceder o no al if)