Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-12-2010
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Unhappy Consulta entre fechas con ADO

Hola amigos:

Tengo el siguiente código desarrollado en Delphi 2007, para buscar entre fechas (campos tipo date) en una base de datos Access 2003, a la que accedo mediante ADOQuerys:

Código SQL [-]
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('select * from examenes where fechaexamen between :F1 And :F2');
Query2.Parameters.ParamByName('F1').Value:= DateEdit1.Date;
Query2.Parameters.ParamByName('F2').Value:= DateEdit2.Date;
Query2.Open;

y al ejecutarlo me arroja el siguiente error:

"No coinciden los tipos de datos en la expresión de criterios"

¿Puede alguien por favor decirme en qué me estoy equivocando?

Saludos y desde ya muchas gracias
Responder Con Cita
  #2  
Antiguo 15-12-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Prueba:

Código Delphi [-]
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('select * from examenes where fechaexamen between :F1 And :F2');
Query2.Parameters.ParamByName('F1').AsDate:= DateEdit1.Date;
Query2.Parameters.ParamByName('F2').AsDate:= DateEdit2.Date;
Query2.Open;

O esta otra
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('select * from examenes where fechaexamen between :#F1# And :#F2#');
Query2.Parameters.ParamByName('F1').Value:= DateEdit1.Date;
Query2.Parameters.ParamByName('F2').Value:= DateEdit2.Date;
Query2.Open;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 15-12-2010
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Muchas gracias marcoszorrilla por tu pronta respuesta.

Al usar el primer código no me acepta la declaración asDate (Identificador no declarado) y al utilizar la segunda me entrega un error de Query2. parámetro F1 no encontrado, a pesar de que si aparece en el AdoQuery.
Tengo en el uses las Dateutils.

Salu2

Última edición por radenf fecha: 15-12-2010 a las 11:34:41.
Responder Con Cita
  #4  
Antiguo 15-12-2010
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
prueba

Código Delphi [-]
qry_ventas.SQL.Add('SELECT FACTURA.Idfactura, FACTURA.nofactura, FACTURA.Fecha,');
    qry_ventas.SQL.Add('FACTURA.CodCliente, clientes.RAZON_SOCIAL, FACTURA.Terminos,');
    qry_ventas.SQL.Add('FACTURA.CodVendedor, FACTURA.montosubtotal, FACTURA.descuento,');
    qry_ventas.SQL.Add('FACTURA.montodescuento, FACTURA.iva, FACTURA.montoiva, FACTURA.montototal,');
    qry_ventas.SQL.Add('FACTURA.pagacon, FACTURA.cambio FROM FACTURA LEFT JOIN clientes ON FACTURA.CodCliente=clientes.Idcliente');

    qry_ventas.SQL.Add('where fecha between : pfechainicio and : pfechafin ORDER BY 1');

    qry_ventas.Parameters.ParamByName('pfechainicio').Value : =FormatDateTime('dd/mm/yyyy',freporte_ventas.dtp_fecha_ini.Date);
    qry_ventas.Parameters.ParamByName('pfechafin').Value: = FormatDateTime('dd/mm/yyyy',freporte_ventas.dtp_fecha_fin.Date);
    qry_ventas.Open;

recuerda que ests linesas tiene que los paramentros tienen que ir juntos es decir, dospunto y la variabel lo separe para que aparecieran correctamente

Última edición por microbiano fecha: 15-12-2010 a las 18:49:36. Razón: modificar caritas
Responder Con Cita
  #5  
Antiguo 16-12-2010
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Muchas gracias microbiano, probé tu código y ya no me arroja error, pero selecciona todos los registros de la tabla, sin importar la fecha.

Salu2
Responder Con Cita
  #6  
Antiguo 16-12-2010
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
que tal si pones el codigo que ahora usas? para ver como esta
Responder Con Cita
  #7  
Antiguo 16-12-2010
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Solucionado.

Modifiqué el código de acuerdo a sus sugerencias y borré el string del AdoQuery. No fue necesario usar el carácter # ni dar un formato inverso a la fecha.

Código utilizado:

Código Delphi [-]
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from examenes where fechaexamen between :F1 And :F2'+ ' and ucase (nombre) like ''%'+UpperCase(Edit1.Text)
+'%''order by nombre');
Query1.Parameters.ParamByName('F1').Value:= FormatDateTime('dd/mm/yyyy',Date1.Date);
Query1.Parameters.ParamByName('F2').Value:= FormatDateTime('dd/mm/yyyy',Date2.Date);
Query1.Open;

Saludos y muchas gracias microbiano y marcoszorrilla.
Responder Con Cita
  #8  
Antiguo 16-12-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Lo veo lógico, yo no me había fijado que Date1 y 2 eran Edits, es lógico que te diera error.

Yo en estos casos utilizo DateTimePicker.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
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
Consulta entre 2 fechas. DeLiRioS MySQL 14 29-04-2013 18:36:35
Consulta Mysql Suma entre rango de fechas kaeltas MySQL 4 22-06-2012 21:30:44
Obtener consulta entre fechas maravert MySQL 1 16-11-2009 22:44:15
slq entre dos fechas comparar fechas taru MySQL 2 30-07-2007 16:10:36
Entre fechas erick_jesus Impresión 1 29-05-2006 19:10:50


La franja horaria es GMT +2. Ahora son las 12:02:12.


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