![]() |
Consulta between con datetimepicker
Hola, estoy haciendo una consulta con un query en delphi 5 el problema es que estoy tomando valores de 2 datetimepicker y cuando lo hago no me devuelve ningún valor si las 2 fechas son iguales me devuelve un dato, pero yo quiero que me devuelva un rango (todas las tuplas entre las dos fechas que le puse), aquí esta el código:
query1.SQL.clear; query1.sql.add('Select Fecha_exp, Fecha_venc, Nombre_cliente, Numero_saldo,'); query1.sql.add('Placas from Fechas where Fecha_exp between :param0 and :param1'); Query1.Params[0].AsDate:= datetimepicker1.date; Query1.Params[1].AsDate:= datetimepicker1.date; query1.open; no hace lo que debería si selecciono 11/11/2004 y 18/11/2004 no me devuelve los datos aunque tengo varias fechas 13/11/2004 o entre el rango de las 2 primeras, ahhh pero si el primer date time picker es igual a la fecha que busco me devuelve un campo :confused: si alguién pudiera ayudarme se lo agradezco de antemano. Saludos Encontre esto en los foros en respuesta a otro usuario con una duda similar Cita:
|
No comentas el tipo de tablas ni el SGBBDD, así a voz de pronto te diría que cambies los parámetros a Tipo String, y al tiempo de dar las fechas a la consulta:
Saludos |
En algunos casos es necesario esto otro:
Un Saludo. |
No se pudo
Gracias por su pronta respuesta, la base de datos esta hecha en paradox uso un alias llamado Aserradero, un componente query un dbgrid y la fecha no es la llave primaria, ya puse las dos opciones que me indican pero no funciona manda un mensaje de error "EDbEngineError with message type msmatch in expresion" y no me arroja ningún resultado con los dos métodos que me dieron. Les agradezco por sus respuestas y les agradecería si me pudieran ayudar o dar referencia ya que me he pelado ya 2 días con esa consulta sin avance alguno.
Saludos
|
Pues yo no veo error en ese código.
Lo único que queda es revisar los parametros del query, que DataType = ftString y ParamType = ptInput. Espero que haya suerte. |
Observá que la línea:
--> Query1.Params[1].AsDate:= datetimepicker1.date; Debería decir: --> Query1.Params[1].AsDate:= datetimepicker2.date; Sino, estás pasándole la misma fecha a ambos parámetros, y de ahí el error. |
y sigue sin quedar!
Cita:
Pero me sigue mandando el error de type mismatch Muchisimas gracias por su ayuda! |
A mi me parece que se están complicando la vida. No hace falta ni el FormatDateTime ni el QuotedStr por la sencilla razón de que los parámetros se están pasando con AsDate. El método AsDate hará la traducción que sea necesaria.
Dicho de otra forma, tal como estaba originalmente: Cita:
El único problema aquí es el que ya mencionó frudolph, estás usando el mismo DateTimePicker en ambos parámetros. // Saludos |
Así es
Como veras en los ejemplos anteriores corregi el problema de los datetimepicker1 y 2 pero aun así no hace la busqueda con el between no lme devuelve ningún campo. :confused:
|
Cita:
Por otra parte, ¿has probado hacer una prueba usando valores específicos en lugar de parámetros? De ser así, ¿te devuelve los resultados esperados? Si te sigue fallando podrías preparar una muestra de tus datos y mandarla al foro como attachment (creo que el límite son 16kb). La muestra debe contener datos con los que se reproduzca la situación que estás enfrentando. // Saludos |
Por fin
Muchas Gracias a todos por su ayuda encontre la solución lo hace a la perfección de esta forma:
:D
como lo dice la ayuda de delphi utiliza parambyname para usar información en especifíco de un parámetro especifíco basado en su nombre. :D |
La franja horaria es GMT +2. Ahora son las 11:54:23. |
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