Programación General > Power Builder
Ejecutar un Store Procedure desde PowerBuilder
maverick2007:
Hola a todos
Quisiera comenzar agradeciendo a ArKaNtOs y F_Tanori por sus aportes.. pues les contare que hize lo que me aconsejaron y nada.
F_Tanori utilize tu codigo pero no funciono.. aqui te mando lo quiero realizar para que me des alguna sugerencia:
Creo una funcion de usuario en SQL Server2000:
create function fu_edad (@edad int)
returns INT
AS
BEGIN
set @edad=@edad + 1
RETURN @edad
END
y hago el siguiente llamado en Power Builder
integer a;
DECLARE fedad PROCEDURE FOR fu_edad @edad=15, @edad=a OUTPUT;
EXECUTE fedad;
sle_1.text = string(a)
y te contare que me da como resultado siempre CERO (0).
Gracias por la ayuda.
PD. Les comento que en la anterior discusion quise responderlos.. pero no puedo porque no tengo acceso a esa opcion.. no se porque??. Por ello he tenido que aperturar una nueva discusión
lencho:
de power builder no se nada, pero creo que cuando se hace el llamado a una funcion de SQL , al nombre de la funcion se le antepone dbo..
Si estoy mal, corrijanme.
BYTE.
El Loco Power:
Bueno, La verdad es que en PB no se utiliza mucho las funciones puesto que este tipo de lógica(como muestras en tu consulta) facilmente se pueden construir en una funcion hecha con powerscript.
En Conclusion: Traslada tu lógica a una funcion global hecha en el mismo PB.
F_Tanori:
colocale los dos puntos a la a
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->integer a;
DECLARE fedad PROCEDURE FOR fu_edad @edad=15, @edad=:a OUTPUT;
EXECUTE fedad;
sle_1.text = string(a)
<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
ademas estas afectando el mismo parametro @edad le estas enviando 15 y luego el valor de a prueba retonrando el valor en otro parametro
o prueba de esta manera
--- Código: Text ---DECLARE pb_SP_edad PROCEDURE FOR fu_edad (:edad)USING SQLCA; EXECUTE pb_SP_edad; if SQLCA.SQLCode=0 then Fetch pb_SP_edad INTO :a; close pb_SP_edad; sle_1.text = string(a) end if
Saludos
maverick2007:
Hola a todos
Gracias por sus aportes. F_Tanori realize lo que me sugeriste y el valor que devuelve el dqlca.sqlcode es = 100, indicandome que "Ningunas filas califican para la operación de DML (no se aplica a los comandos dinámicos) "
por ello en el codigo que me diste..
if SQLCA.SQLCode=0 then
Fetch pb_SP_edad INTO :a;
close pb_SP_edad;
sle_1.text = string(a)
end if
nunca ingresa.. y no muestra la respuesta correcta.
No quisiera caerte espeso F_Tanori, lo que pasa es que me interesa conocer esto.
gracias por todo
Maverick
PD. Nuevamente utilizo otra discusion porque no puedo responderlos
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa