Delphi no interpreta query
Holas,
no sé si estoy haciendo mal uso del foro, si es así, mis disculpas; pero vi mi otro hilo con una marca como si estuviera resuelto y, en realidad, la cuestión por la que lo abrí se solucionó con vuestra ayuda. Pero me surgió la siguiente... No consigo que la aplicación en delphi me ejecute la sentencia que os muestro (me da error ODBC... Pocos parámetros... Se esperaba 1). He probado a cambiar paréntesis, '', etc. Toy desesperada ya :eek: La consulta funciona perfectamente desde el access y seguro que en delphi no lo hace por algun detalle de sintaxis q se me escapa. Gracias!
|
Hola,
Es probable que se trate de un error de sintáxis, y, siendo así, no basta conque pongas la consulta SQL que tratas de llevar a cabo, sino el código fuente de Delphi donde tratas de "embeberla". Así, sin más, la consulta que muestras no puede guardarse en una cadena en Delphi, puesto que contiene caracteres que "partirían" dicha cadena y la harían inválida. Así que si te es posible muestra cómo tratas de hacer la consulta en Delphi, y el mensaje de error exacto que obtienes. PD. Fíjate que en este foro existen las etiquetas [sql][/sql], [delphi][/delphi], entre otras, que mostrarán el código fuente correspondiente de manera que se lea mejor. |
Gracias por las recomendaciones ;)
El código sql lo tengo puesto directamente en el ADOQuery1.SQL; Tengo los componentes ADOConnection, ADOQuery, DBGrid y Datasource debidamente relacionados, en principio. Y en el form un botón con
Qué estoy haciendo mal? |
Intentando hacer de adivino:
¿exiten varios registros que su pref_key sea igual a 'PRIN'? Si es así, estas usando un operador de igualdad que espera un solo registro, de ahí el fallo. Prueba usando:
Saludos |
Gracias Lepe, pero no hay duplicidad. Y además, la query va bien en access. Lo he probado aun así y nada.
|
Falta una coma en el primer Format...
|
Thanks. Que va... :( He quitado toda referencia a fechas, los format, el group by y el order y nada. Además, ya os digo, que tal como la pongo en el post corre perfecta en access.
Lo he copiado y pegado en la propiedad ADOQuery1.SQL tal cual... no será que habrá que ponerlo en líneas diferentes o con otro formato... No sé, lo mismo estoy diciendo tonterías... |
Lo que pasa es que IIF es una función de Access... en MySQL el equivalente es IF() asi sin la otra "I".
Ojo con Access porque su SQL no es precisamente muy apegado al estandar que digamos (que raro verdad?). Si estas solo copiando querys de access a MySQL te vas a encontrar muchos problemas iguales...Es mejor que revises los querys antes de correrlos en mysql buscando las funciones que utilices en el manual de sql para ver si existen y si no buscar su equivalente. Aqui tienes un link a una buena pagina con ejemplos y demas: |
Tal ves sea idiota lo que te dire pero... probaste quitando la propiedad param check? o sea paramcheck = false;
|
como dijo the_avatar...
si lo copiaste y pegaste tal cual, en Format(g.date'yyyy') te falta la coma...
|
Me encantan los posts como este en donde el autor no se digna en decirnos: "no me funcionó", "si me funcionó", "no le entiendo"...etc. y todos seguimos dando mas y mas soluciones pensando que ninguna de las anteriores le ha funcionado...:(
|
La franja horaria es GMT +2. Ahora son las 08:56:07. |
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