Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-06-2007
mgaytan mgaytan is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
mgaytan Va por buen camino
comparación de Fechas

Buenas chavos ....
estoy empezando a conocer este foro y me parece muy bueno.
Tengo muchas dudas acerca de Delphi.
Una de ellas es que tengo una tabla en paradox, quiero hacer un reporte donde el usuario ingrese fecha inicial y fecha final desde in DataTimePicker.
y desplace los recors que esten entre esas fechas.
begin
Table1.Edit;
dx:=Table1.Recordcount;
Table1.First;
r:=StrToInt(Edit3.Text);
for dz:=1 to dx do
begin
if ((DateTimePicker1.Date<=Table1.Fieldbyname('FECHA').asstring)and (DateTimePicker2.Text>=Table1.Fieldbynam('FECHA').asstring) Then
begin
Table2.Insert;
Table2.Fieldbyname('FECHA').asstring:=Table1.Fieldbyname('FECHA').asstring;
esto funciona pero solamente compara los promeros digitos de la fecha 00/00/0000 el resto lo omite.

espero sus sugerencias gracias
Responder Con Cita
  #2  
Antiguo 06-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Nada mas para que te guíes un poco:
Código Delphi [-]
ADOQuery1.Open;
  ADOQuery1.Filter := 'FechaTransac >= '+DateToStr(DateTimePicker2.DateTime)+' AND FechaTransac <= '+DateToStr(DateTimePicker3.DateTime);
  ADOQuery1.Filtered := True;
Saludos
Responder Con Cita
  #3  
Antiguo 06-06-2007
mgaytan mgaytan is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
mgaytan Va por buen camino
Upss

estoy muy verde para esto me prodias explicar donde pongo esto !!!
ya que la consulta la estoy haciendo desde una form no uso SQL ni ADOSQL.

Gracias.
Responder Con Cita
  #4  
Antiguo 06-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Vamos por partes, que no entiendes, donde colocas la consulta.
Veamos, esto es lo que tienes:
Código Delphi [-]
begin
Table1.Edit;
dx:=Table1.Recordcount;
Table1.First;
r:=StrToInt(Edit3.Text);
for dz:=1 to dx do
begin
if ((DateTimePicker1.Date<=Table1.Fieldbyname('FECHA').asstring)and (DateTimePicker2.Text>=Table1.Fieldbynam('FECHA').asstring) Then
begin
Table2.Insert;
Table2.Fieldbyname('FECHA').asstring:=Table1.Fieldbyname('FECHA').asstring;

Código Delphi [-]
if 
Table1.Fieldbyname('FECHA') <= (DateTimePicker1.Date)
and 
Table1.Fieldbynam('FECHA') >= (DateTimePicker2Date)
Then
No se esto de los parametros me incomoda un poco, lo prefiero por sql.
Espero te ayude un poco.
Saludos
Responder Con Cita
  #5  
Antiguo 06-06-2007
mgaytan mgaytan is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
mgaytan Va por buen camino
Bamos bien

CLaro que las rutinas son mas tediosas de hecho quiero aprender a manegar SQL pero el primer ejemplo que me pusiste no se donde colocarlo o como hacer consultas por SQL, mi duda es mas atras del ejemplo que me estas dando espero me puedas ayudar a.

Gracias
Responder Con Cita
  #6  
Antiguo 06-06-2007
mgaytan mgaytan is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
mgaytan Va por buen camino
si

CLaro que las rutinas son mas tediosas de hecho quiero aprender a manegar SQL pero el primer ejemplo que me pusiste no se donde colocarlo o como hacer consultas por SQL, mi duda es mas atras del ejemplo que me estas dando espero me puedas ayudar a.

Gracias
Responder Con Cita
  #7  
Antiguo 06-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
begin
Table1.Open;
Table2.Open;
Table1.First;
dx:=Table1.Recordcount;
r:=StrToInt(Edit3.Text);
for dz:=1 to dx do
Begin
Table1.Filter := 'FECHA >= '+DateToStr(DateTimePicker1.DateTime)+' AND FECHA <= '+DateToStr(DateTimePicker2.DateTime);
Table1.Filtered := True;
end;
begin
Table2.Insert;
Table2.Fieldbyname('FECHA').asDate:=Table1.Fieldbyname('FECHA').asstring;
No se si se podra hacer asi tambien:
Código Delphi [-]
Table2.Fieldbyname('FECHA').asDate:=Table1.Filter;
Saludos
Responder Con Cita
  #8  
Antiguo 06-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Rectifico:
Código Delphi [-]
begin
Table1.Open;
Table2.Open;
Table1.First;
dx:=Table1.Recordcount;
r:=StrToInt(Edit3.Text);
for dz:=1 to dx do
Begin
Table1.Filter := 'FECHA >= '+DateToStr(DateTimePicker1.DateTime)+' AND FECHA <= '+DateToStr(DateTimePicker2.DateTime);
Table1.Filtered := True;
end;
begin
Table2.Insert;
Table2.Fieldbyname('FECHA').asDate:=Table1.Fieldbyname('FECHA').asDate;
Pequeño error de dedo.
Saludos
Responder Con Cita
  #9  
Antiguo 06-06-2007
mgaytan mgaytan is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
mgaytan Va por buen camino
ya mero

Me aparece este error 'Arithmetic in Filter Not Supported'
se crea una excepcion y me saca.
Responder Con Cita
  #10  
Antiguo 06-06-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Hola.

Según entiendo, la tabla 2 no es necesaria. Cómo ya has dicho que la aritmética de fechas no es permitida en el filtro, podes cuidarte de que la propiedad Filter de la tabla esté en blanco, poner a True la propiedad Filtered y en el evento OnFilterRecord, poner algo cómo:

Código Delphi [-]
begin
  Accept := Table1Fecha.AsDateTime >= DateTimePicker1.Date 
             and Table1Fecha.AsDateTime <= DateTimePicker2.Date;
end;

Hasta luego

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #11  
Antiguo 06-06-2007
mgaytan mgaytan is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
mgaytan Va por buen camino
nop

Puse esto
Accept := Table1.Fieldbyname('FECHA').AsDateTime >= DateTimePicker1.Date
and Table1.Fieldbyname('FECHA').AsDateTime <= DateTimePicker2.Date;

me marca un error el tipo de operador <= no es aplicable
Responder Con Cita
  #12  
Antiguo 06-06-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por mgaytan
Puse esto
Es cierto... debe ser:
Código Delphi [-]
Accept := (Table1.Fieldbyname('FECHA').AsDateTime >= DateTimePicker1.Date)
  and (Table1.Fieldbyname('FECHA').AsDateTime <= DateTimePicker2.Date);

¡pero hombre!

Ya casi pedís que le de yo mismo al F9 de tu ordenador.... es de esperar que alguna parte del trabajo hagas vos, ¿no?

Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #13  
Antiguo 06-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Y algo asi:
Código Delphi [-]
begin
Table1.Open;
Table2.Open;
Table1.First;
dx:=Table1.Recordcount;
r:=StrToInt(Edit3.Text);
for dz:=1 to dx do
Begin
Table1.Filter := 'FECHA between '+DateToStr(DateTimePicker1.Date)+' AND '+DateToStr(DateTimePicker2.Date);
Table1.Filtered := True;
end;
begin
Table2.Insert;
Table2.Fieldbyname('FECHA').asDate:=Table1.Fieldbyname('FECHA').asDate;
La tabla 2 tengo entendido que es para recoger el resultado del filtro.
Me equivoco?
Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Fechas en SQL KAYO SQL 7 08-01-2007 14:04:56
Fechas federiconqn21 Varios 1 04-05-2006 15:30:01
Las horribles fechas, control de fechas Huer OOP 6 18-10-2005 19:11:49
Compración de fechas Alexander Varios 4 09-06-2005 00:38:58
sql con fechas soloriv SQL 4 11-03-2005 21:12:49


La franja horaria es GMT +2. Ahora son las 23:20:58.


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