Power Builder - Problema con procedimiento almacenado

   
Vista:

Problema con procedimiento almacenado

Publicado por Denys Alberto (104 intervenciones) el 10/02/2015 18:22:42
Amigos del foro, les saludo y de manera anticipada les agradezco por la posible solución que me pudieran brindar, bueno el problema es el siguiente, resulta que deseo realizar una llamada de un procedimiento almacenado desde Power Builder 11.5 y SQL Server 2008R2, el procedimiento funciona bien la BD, sin embargo cuando llamo dicho procedimiento desde Power Builder me manda error de sintaxis, no entiendo porque?, el procedimiento es el siguiente:

DECLARE GrabarUsuario PROCEDURE FOR usp_crearusuario(CODIGOUSUARIO = :ls_codigoUsuario, &
APELLIDOPATERNO = :ls_apellidoPaterno,
APELLIDOMATERNO = :ls_apellidoMaterno,
NOMBRES = :ls_nombres,
PASSWORD = :ls_password,
IDSERVICIO = :li_idServicio)
Execute GrabarUsuario ;----> Si coloco en punto y coma:manda un mensaje de error de caracter no valido, si le quito me da un mensaje de sintaxis incorrecta.
Recalco mi agradecimiento y espero que me puedan ayudar, saludos...
Denys Alberto
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con procedimiento almacenado

Publicado por MMan (23 intervenciones) el 10/02/2015 21:04:31
tal vez sea por el & que tienes al final de la primera linea....

si quieres dividir una instruccion PowerBuilder en varias lineas usas &

PERO eso no se puede usar en una instruccion SQL,, simplemente haces un salto de linea y terminas con el ; (punto y coma)

DECLARE ... etc etc.. ; <-- ( punto y coma )
EXECUTE ... etc ; <-- ( punto y coma )

FETCH xxxx ; <-- ( punto y coma )
CLOSE xxx ; <-- ( punto y coma )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con procedimiento almacenado

Publicado por Denys Alberto (104 intervenciones) el 10/02/2015 21:23:53
Hola MMan, hice lo que me recomendastes, sin embargo me sale el error de: ODBC SQL Server Driver Valor de caracter no valido para especificación cast...gracias por tu tiempo...espero que me des otra solución..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antonio

Problema con procedimiento almacenado

Publicado por Antonio (1114 intervenciones) el 10/02/2015 21:54:13
Una pregunta...

Ese procedimiento almacenado esta guardado en SQL Server 2008 y lo que quieres es ejecutarlo desde PowerBuilder?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con procedimiento almacenado

Publicado por MMan (23 intervenciones) el 10/02/2015 22:38:23
...creo que los parentesis NO van

DECLARE GrabarUsuario PROCEDURE FOR usp_crearusuario
CODIGOUSUARIO = :ls_codigoUsuario,
APELLIDOPATERNO = :ls_apellidoPaterno,
APELLIDOMATERNO = :ls_apellidoMaterno,
NOMBRES = :ls_nombres,
PASSWORD = :ls_password,
IDSERVICIO = :li_idServicio ;

Execute GrabarUsuario ;


la forma mas facil de pegar una instruccion sql es usando el boton PASTE SQL -> Procedure declare
y sigues el asistente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con procedimiento almacenado

Publicado por Denys Alberto (104 intervenciones) el 10/02/2015 22:44:57
Igual me manda error, ahora con lo que has propuesto me sale el error de Database C0038 SQLESTATE=22005[Microsoft][ODBC SQL Server Driver] Valor de caracter no valido para especificación cast, y lo hice como tambien has sugerido por medio del asistente y nada....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con procedimiento almacenado

Publicado por MMan (23 intervenciones) el 10/02/2015 23:27:08
segun algunos foros.... agregando... a tu connectsting


StripParmNames='Yes' y
CallEscape='No'

resuelve ese problema... tal vez t funcione :D

aca un ejemplo

SQLCA.DBParm="Cachename='test2' ,StripParmNames='Yes',CallEscape='No' "


y sino.. pues andamos andando a palos de ciego jajaja
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con procedimiento almacenado

Publicado por Denys Alberto (104 intervenciones) el 11/02/2015 14:33:46
Jajajaj..gracias por tu tiempo a ver voy a probar ello que hicistes...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con procedimiento almacenado

Publicado por Denys Alberto (104 intervenciones) el 11/02/2015 14:53:49
No funciona amigo...la verdad me urge ello..espero que me puedas apoyar con otra sentencia...gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con procedimiento almacenado

Publicado por MMan (23 intervenciones) el 11/02/2015 16:18:17
tal vez.. si pones mas datos....

cual es tu connect string
como declaraste tu SP en el SQL server
y como lo ejecutas desde PB
-------
lo de error d sintaxis ya esta arreglado... pero lo del SQLSTATE=22005 segun lo que leo en los foros, es por que el ODBC hace mal la "traduccion" entre la sintaxis sql del PB con lo que entiende SQL

-----


y segun leo.. una forma "mas facil" de llamar a un SP (que no retorna un result set ) es usando un RPC FUNC

aca algunos ejemplos

http://stackoverflow.com/questions/7439681/can-i-call-sp-send-dbmail-in-powerbuilder
http://powerbuilder.hyderabad-colleges.com/Advanced-PowerBuilder-2-16-100.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con procedimiento almacenado

Publicado por Denys Alberto (104 intervenciones) el 13/02/2015 06:46:47
Hola MMan, disculpa que no te haya contestado y la verdad te agradezco el interes por dar la solucion del caso, te comento que ya superé dicho inconveniente, resulta que era el tipo de conexión, lo que hice fue cambiar de ODBC a la conexion nativa del SQL Server, con ello funciono y corrio sin problema alguno, es por ello que me mandaba dicho mensaje, ahora naa....de verdad te agradezco por tu tiempo..y saludos desde Madre de Dios-Perú
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con procedimiento almacenado

Publicado por Leopoldo Taylhardat (691 intervenciones) el 12/02/2015 23:17:14
Saludos...
Yo los uso así...

DECLARE act_usuario PROCEDURE for sp_addlogin :si_usuario,:si_passwd ;
Execute act_usuario;

Los parámetros son corridos sin identificar...

DECLARE GrabarUsuario PROCEDURE FOR usp_crearusuario :ls_codigoUsuario, :ls_apellidoPaterno, :ls_apellidoMaterno, :ls_nombres, :ls_password, :li_idServicio;
Execute GrabarUsuario ;

Espero que te sirva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Problema con procedimiento almacenado

Publicado por Denys Alberto (104 intervenciones) el 13/02/2015 06:48:00
de igual manera Leopoldo, gracias por tu tiempo, y como ya explique anteriormente ya solucione el problema..gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con procedimiento almacenado

Publicado por Roger (1 intervención) el 09/08/2016 19:50:36
Respuesta correcta Los parámetros son corridos sin identificar...
Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar