operator not applicable to this operand type
buenas tardes,dias y noches a todos...tengo un problemita y no si alguien pudiera ayudarme...
hago un SQL para una consulta en un IBquery pero el primer QuotedSTR(fecini) me marca el siguiente error: operator not applicable to this operand type este Query lo tengo en el modulo datos, y lo ajusto de acuerdo a la consulta del usuario, para sacar un rango de fechas de abonos de XX cobrador... La sentencia SQL es la siguiente :
le ha pasado esto a alguien, gracias por su tiempo y ayuda, y que mi Dios me los bendiga |
Buenas tardes.
Porque no usas parametros para pasar los datos a la consulta?
Saludos |
Lo he intentado pero se me hace mas dificil especialmente a la hora de manejar las variables de fecha...ya lo intente...ademas, en la consulta tengo tres opciones:
1.-un Cobrador 2.-Todos los cobradores 3.-Solo rango de fechas por lo que la sentencia SQL debo cambiarla....me explico... como lo harias tu con los parametros especialmente con las fechas..gracias por tu tiempo JAFERA |
Un ejemplo que uso yo (adaptalo a tus necesidades)
Como lo modifico desde Delphi:
A ver si te sirve Saludos |
Gracias JAFERA voy a intentar hacerlo asi, ... luego te digo como m fue..una pregunta los parametros de fechas inicio y final los defines como ftdate...? o como string.?
|
Las fechas en los motores de datos son una lata, si lo pasas como string, intentará cotejarlo con la forma "yyyy-mm-dd", si no casa, pues normalmente lo intenta con el formato "mm-dd-yyyy" y si tampoco casa, normalmente da error. Si el formato lo pasas con formato "dd.mm.yyyy" (al usar puntos como separadores, lo interpreta como fecha española).
Pero lo más normal para dejarse de rollos es: - BBDD en dialecto 3 - campo en formato date o timestamp - Los sqls los hace como ha dicho salvo un detalle, las fechas que sean TDate o TDatetime y usando:
De esa forma es Delphi quien "se pelea con el motor de bases de datos" y le pasa la fecha en el formato correcto, sin tú saber cual es, ni tener que pelearte tú. Ten mucho cuidado al usar DateToStr y StrTodate, porque lo codificará en el formato que delphi se le ocurra, (en realidad se basa en los formatos que tengas definidos en SysUtils y en la configuración regional de windows), para dejarte de rollos, usa FormatDatetime ('dd/mm/yyyy hh:nn', CampoFechaHora.AsDateTime). Recuerda que en Delphi un TDateTime es un float donde la parte entera son los días transcurridos desde el día cero (30/12/1899) y la parte decimal es la hora, minutos, segundos y milisegundos. También aconsejo usar esta otra variante en los sql: porque a la larga es más legible, aunque si quieres quitar la igualdad de fechas, acabas haciéndolo como antes con el ">" y el "<". Saludos |
muchas gracias LEPE tus sugerencias me seran de mucha ayuda....sinceramente gracias
|
cuando paso lo parametros como me lo suguieres...
TPFechini y TPFechfinal son de pickdates... En la linea que indico da el siguiente error.. Invalid variant type conversion tienes alguna idea por que..? |
Hola alexglez1255
Cita:
Saludos :) |
gracias ecfisa lo intentare
|
operator not applicable to this operand type
disculpen que vuelva a tocar el tema pero no logro encontrar por que me da este error, ya formatie la compu..instale una version delhi mas nueva (tenia la 6 enterprise y puse la 7), y no se por que me da este error al alguien le ha aparecido..? trate de usar otras alternativas que me sugirieron pero esta se me hace la mas practica por que no necesito pasar parameters...y se usa como una consulta libre...
hago un SQL para una consulta en un IBquery pero el primer QuotedSTR(fecini) me marca el siguiente error: operator not applicable to this operand type este Query lo tengo en el modulo datos, y lo ajusto de acuerdo a la consulta del usuario, para sacar un rango de fechas de abonos de XX cobrador... La sentencia SQL es la siguiente :
gracias y que mi Dios los bendiga por su ayuda... |
No es necesario tomar medidas tan drasticas como formatear, reinstalar delphi, es un error de compilacion nada mas :)
Segundo, porque no usar parametros? En realidad deberias tratar de usar siempre parametros, ya las ventajas las enumeramos miles de veces por el foro Y por ultimo de que tipo es la variable "fecini"? Tenes que tener en cuenta que QuotedStr recibe como parametro un string. Es decir, esto no te va a compilar:
|
este es el proceso tratando de usar parameters, no me da error me pero no me arroja ningun resultado la consulta
los parameters FDESDE y FHASTA son de tipo fecha y el cod_cobrador es entero...
|
No mandes los parametros como string; manda directamente las fechas y "que se las arregle" el motor sql. Eso es justamente lo bueno de los parametros, seteas el valor y a cobrar
|
si ves AGUSTINORTU es lo que hago extraigo la fecha (un string) y la convierto a date (strtodate) y asigno directamente las fechas
a los parametros pero no me sale nada...algo no estoy haciendo bien...gracias de antemano |
Hola alexglez1255.
Por favor no abras otro hilo con la misma consulta, de ese modo evitamos los resultados redundantes en las búsquedas. Si lo que buscas es destacar nuevamente la consulta, basta con que agregues un nuevo mensaje al final del hilo inicial y este pasa automáticamente a encabezar la lista de nuevos mensajes. Combiné ambos mensajes, con idéntico título y mismo contenido, en el primero. Saludos y gracias por tu colaboración :) |
quiero agradecer sinceramente a TODOS especialmente a mi Dios JEHOVA...pero tambien a todos ustedes...ecfisa, AgustinOrtu,Lepe, jafera, por todas sus aportaciones y ideas y con gran gusto les dire que ya logramos hacerlo funcionar y la sugerencia que al final logro hacerlo fue la de ECFISA...
ME HACE LA CONSULTA DE LAS FECHAS...Y NO ME DA NINGUN ERROR...PERO SI FUE UN DOLOR DE CABEZA..GRACIAS A TODOS ESPCIALMENTE A MI CREADOR JEHOVA... |
La franja horaria es GMT +2. Ahora son las 21:42:55. |
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