Hola les escribo por me ha surgido un problema he modificado el sp_certmatapro del guarani 2.64, para obtener la fecha de nacimiento y el sexo de la persona para utilizarlo para generar el certificado de materias aprobadas.
Pero cuando el programa llama a este procedimiento da error -674, no se puede ejecutar el procedimiento, pero yo he probado el procedimiento en SQL y me devuelve los valores correctamente.
Como vi que no funcionaba volvi al sp original y este procedmiento da el mismo error, antes mencionado.
Si a alguien le a pasado esto agradeceria su ayuda para solucionarlo. Adjunto sp modificado.
Desde ya muchas gracias
Martin,
Cuidado que el procecure se llama certmataprob (en tu nota dice certmatapro)
El error -674 tiene 3 posibles causas:
el procedure NO existe,
no tenes permisos de ejecucion sobre el procedure
lo estas invocando con una cantidad incorrecta de parametros (de entrada o de salida)
Por lo que vos comentas, decarto 1) y tambien descarto 3) porque Guarani lo invoca bien. Con lo cual, es probable que sea un tema de permisos.Para descartarlo, te sugiero ejecutar un GRANT desde el mismo lugar donde creaste el procedure y con el mismo usuario como el que esta a continuacion:
GRANT EXECUTE ON sp_certmataprob TO PUBLIC;
y luego probar desde guarani a ver si lo ejecuta OK, por favor contame como te fue, saludos
Ignacio
PD: Mas abajo el detalle del error -674
-674 Routine cannot be resolved.
You called a routine that does not exist in the database, you do not have permission to execute the routine, or you called the routine with too few or too many arguments. If a prepared statement invokes a user-defined routine and your application or another application drops the routine before the prepared statement is executed, you will receive this error.
You might also see this error message if you write an expression that calls an SPL routine (stored procedure) that returns no values. For an SPL routine to be usable in an expression, the routine must return a value.
Check that the name of the routine is correct, that you have execute permission, and that you specified the correct number of arguments to execute a routine. For a prepared statement that refers to the routine, make sure that the routine still exists when you execute the statement.
Ignacio gracias por tu ayuda, lo que me diste fue de mucha ayuda, por que yo habia cargado el sp como el usuario “informix”, pero cuando lo borre y lo volvi a crear con el usuario “dba” anduvo correctamente.
Muchisimas gracias