Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Ayuda con consulta (https://www.clubdelphi.com/foros/showthread.php?t=4567)

JorgeBec 20-10-2003 20:26:27

Ayuda con consulta
 
Que tal comunidad!, la pregunta es la siguiente, estoy poniendo la siguiente sentencia en el parametro Query de un componente query

select * from m_inoutline where to_char(updated,'DD/MM/YY') =:xFecha

xFecha es una variable que se asigna del siguiente modo...

xFecha := DateToStr(DTFecha.Date);

si hago esta consulta en la consola de oracle si me despliega los registros, que estará mal???

cabe señalar que DTFecha es un componente DateTimePicker...

agradeceré sus respuestas...

JorgeBec 20-10-2003 20:27:57

Perdon se me olvido comentar que en el grid al que esta asignado este set de datos no me despliega nada...

marcoszorrilla 20-10-2003 20:33:51

Pureba a asignarlo así, puesto que todo parece apuntar a un formato incorrecto de conversión de la fecha.

xFecha := FormatDatetime('dd/mm/yyyy',DTFecha.Date);

Un Saludo

JorgeBec 21-10-2003 00:29:12

Gracias por tu respuesta, en efecto con FormatDateTime, puedo obtener el formato 'dd/mm/yyyy' pero sigue sin filtrarme los registros, por el debugger todo esta bien, obtengo el formato de acuerdo lo requerido pero algo pasa que no me filtra la información, presiento que no es la senetencia, lo chistoso es que pongo directa la fecha en la sentencia sql con el formato mencionado y si me lo hace, me suena a cuestion de parametros, cabe señalar que xFecha esta como definida de la siguiente manera

var
xFecha: string

esto despues de la sección de implementation

xFecha en las propiedades de params en el componente query la
puse del tipo ftString...que estará mal???

marcoszorrilla 21-10-2003 08:27:17

Prueba a mostrar antes el SQL construido con ShowMessage(MiConsulta.Text);

De esta manera ves como te construye el SQL que funciona y luego pruebas con el resto de sentencias y vistas las diferentecias creo que podrás arreglarlo sin mucho problema.

Un Saludo.

JorgeBec 21-10-2003 17:09:32

ok marcos ya hice lo que me pediste y en efecto cuando despliego la consulta armada, me despliega un signo de interrogación en los parametros. No se a que se deba...pareciera que se trunca el valor a la hora de armar la consulta...

creo yo que esto confirma la teoría de que hay algo mal en los parametros....

te doy mas información...

los parametros estan declarados como variables...

en params al tipo de dato de le estoy poniento ftString...

que estará pasando???

JorgeBec 21-10-2003 17:24:55

Ok, ya quedo lo que pasa es que a los parametros no deben ser variables, hay que pasarle los valores de la siguiente forma...


qryVisualizar.Params[0].AsString := FormatDatetime('dd/mm/yyyy',DTFecha.Date);


te agradezco tus atenciones marcos, gracias...

jachguate 21-10-2003 20:25:16

Creoq eu el problema parte porque estas tratando de comparar dos cadenas de caracteres, cuando bien podes pedirle a oracle que compare dos fechas... no?

algo como:

Código:

select * from m_inoutline where updated =:xFecha
donde xfecha será del tipo tDateTime

y luego haras algo como:

Código:

miconsulta.ParamByName['xFecha'].AsDateTime := Date;
De esa forma te evitas toda la complejidad de convertir la fecha a una cadena que sea compatible con la cadena que generará el servidor, a partir de otra fecha.

Hasta luego

;)


La franja horaria es GMT +2. Ahora son las 14:24:26.

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