Execute Statement
Hola, buen día...
Estoy definiendo un proceso almacenado que toma varios parámetros de entrada. Con esos parametros de entrada armo una cadena llamada SENTENCIA, y armo la consulta de la siguiente manera:
El error se produce al compilar, donde no me reconoce el ( de la variable sentencia. Lo he probado sin parentesis y tambien lo he probado con parametros localizados y persiste el error. Utilizo firebird 2.1. Alguna sugerencia???? Gracias de antemano!! |
Echa un vistazo a los mensajes de abajo, al final de página, a ver si te sirven.
|
Sigue el problema
Hola, gracias por la respuesta.... he leído los hilos, pero no he podido solucionarlo. El error puntual es:
Saludos! |
Pues entonces no será el código que has puesto, porque ahí no hay 41 líneas.
|
Error
En realidad si, tengo las 41 lineas y sobre la linea 41 cae la línea del error, que lo he separado y el error esta cuando paso los parámetros, es decir en donde dice
Si no le paso ese valor, compila, pero después al correrlo me dice que no conoce a "A"... he buscado por todos lados y toda la documentacion dice lo mismo, pero la realidad es que no me compila. Saludos! |
No recuerdo que puedas pasar parámetros, debes crear la sentencia completa antes de lanzarla con execute statement
|
No te compliques. Concatena el valor directamente:
Código:
... || :num_cuenta |
Va funcionando!
Correcto, concatenando el valor directamente funciona, solo que ahora tengo el problema cuando en lugar de comparar por un valor lo hago con por ejemplo el "satarting with" o el like, como:
Al correrlo, me dice que la columna XX no existe, siendo XX la cadena que paso como parámetro de búsqueda para el campo nombre. Alguna sugerencia? Gracias! |
Pon los valores entre comillas si son cadenas:
Código:
and codigocuenta='||''''||old.codigocuenta||''''; |
Eureka
Correcto señores, ahí quedo funcionando perfectamente...
Les agradezco la ayuda. Saludos! |
Fe de erratas!!!
Bueno, pasando valores en numeros o string no he tenido problemas.... el problema surge cuando quiero pasarle fechas, por ejemplo:
Me da el error "Expression evaluation not supported" La variable desde es de tipo DATE. Saludos!! |
|
Sigo igual
hola Caminante, gracias por la respuesta.
En realidad lo habiamos visto pero me tira el error de que no compila porque no reconoce los parentesis cuando quiero especificar los parametros ya sea nombrados o por valor posicional. Por eso resolvimos concatenando las variables, pero en las que tienen tipo fecha no me deja, me da el error mencionado en el mensaje anterior. Saludos! |
Recuerda que las fechas son números double.
|
Cita:
Saludos |
Respuesta
Correcto, en principios tenia los dos puntos, como si fuera parámetro, luego lo tengo cambiado y funcionando, salvo cuando quiero pasar fechas.
Saludos. |
Hola rruffino.
No tengo a mano la versión 2.1 como para probar, pero creo que no tendrías problemas enviando parámetros del tipo DATE, al modo de este ejemplo:
Si usaras la versión 2.5 o superior, podes hacer uso de parámetros dinámicos como en los siguientes ejemplos: . Usando parámetros con nombre.
. Usando parámetros sin nombre. Los tres ejemplos de SP se pueden llamar del mismo modo:
Saludos :) |
La franja horaria es GMT +2. Ahora son las 00:08:42. |
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