FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
ZeosDBO: ZStoredProc intenta hacer un SELECT a un Procedimiento Almacenado !!!!
Hola a todos...
He estado intentando llamar a un Procedimiento Almacenado en Delphi 7, hecho en Interbase 6.5, pero cuando activo el componente ZStoredProc, obtengo este mensaje: Código:
"SQL Error: Dynamic SQL Error code = -84. procedure ZAP_MIDDATOS does not return any values. Error Code: -84 non-SQL security class defined The SQL: SELECT * FROM ZAP_MIDDATOS;"
Zeos está intentado hacer un SELECT * FROM zap_middatos en vez de EXECUTE PROCEDURE zap_middatos, que sería lo correcto. Muchos se preguntarán ¿por que no usas IBX?, bueno la respuesta es muy simple, el sistema va a entrar en una fase de transición, y la base de datos va a cambiar de Interbase 6.5 a PostgreSQL 8.0. La gran pregunta ¿Como debo configurar el componente para que no haga un SELECT...? ¿o acaso es un error? ¿Debo modificar el código fuente de ZeosLib? Cualquier consejo será útil... PS: Estoy usuando ZeosDBO 6.1.5 stable.
__________________
"Nadie es perfecto" (Don Nadie) |
#2
|
|||
|
|||
Solución: retornar variable
Ya que los componentes ZStoredProc se empeñan en hacerle SELECT a procedimiento almacenado sin retorno de valores (en vez de llamarlos con EXECUTE PROCEDURE de manera inteligente) lo mas sencillo es hacer que el procedimiento retorne una variable, pero no necesariamente con un valor, de esta manera:
La variable x (un entero) está declarada, pero no inicializada. Por lo tanto da lo mismo llamarlo con
que usando
Pero en un componente ZStoredProc solamente el segundo funciona, imagino que es porque no es "inteligente" y no evalua si el procedimiento devuelve o no variables (no valores). Eso es todo... supongo que muchos lo sabían... pero unos pocos no, así que para ellos va la explicación :-)
__________________
"Nadie es perfecto" (Don Nadie) Última edición por DobleSiete fecha: 24-05-2005 a las 14:15:00. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|