Power Builder - ¿Cuál es realmente la sintaxis para declarar un SP en Power Builder?

 
Vista:
Imágen de perfil de cotizandopc

¿Cuál es realmente la sintaxis para declarar un SP en Power Builder?

Publicado por cotizandopc (4 intervenciones) el 13/09/2016 17:08:12
Buenas a todos, actualmente tengo inconveniente(desde ayer) con la declaración de un SP.
Uso el SQL Server 2008 R2 y el Power Builer 9.0.

123456789123456789123456789

Me bota 100, estoy seguro que en la sintaxis tengo que haber cometido un error, he estado googleando pero no he podido concluir nada.

Nota: Tengo entendido que 100 (Lo que devuelve el SQLca.SQLCode) es cuando no te devuelve ningún registro.
Antes en el commit, usaba el Usíng SQLCA, lo comente por que no pasaba nada, igual ahora con el commit solo.

Halcon2SP_ST

Le hice seguimiento, eso son 2 ejecuciones, la primera termina en las 6 primeras líneas, copie el SP en SQL y funca normal, no entiendo por que no guarda los registros, cualquie ayuda, bienvenida sea.

A cierto, me olvidé de agregar algo, también lo intenté con el famoso "[arroba] as_gato = :ls_gato".

variablesarroba

Mismo resultado, cabe decir que también si intento hace un select a la tabla donde se insertan los datos, se queda colgado, y no puede hacer el select hasta que cierre la aplicación(Diske que con el commit eso no debería pasar). Con eso sería todo.
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
sin imagen de perfil

¿Cuál es realmente la sintaxis para declarar un SP en Power Builder?

Publicado por Jorge (29 intervenciones) el 14/09/2016 00:55:23
Hola

Efectivamente, SQLCA.SQLCode devuelve 100 cuando se hace un SELECT. En tu caso, estás ejecutando un SP e internamente ejecutando un INSERT o UPDATE; por lo tanto solo evalúa que si el valor es diferente de -1 das por aceptada la transacción.

COMMIT Usíng SQLCA o simplemente COMMIT hacen lo mismo; Es recomendable usar COMMIT Using Transacción cuando se trabaje con múltiples transacciones (conexiones a varias Base de Datos) y es necesario indicar de manera explícita a qué transacción se está haciendo el COMMIT.

En el segundo caso, se asume que solo hay una transacción (SQLCA) por lo tanto con el COMMIT es suficiente.

Cuando haces un SELECT a una tabla a la cual se ha ejecutado, por ejemplo, un INSERT y no se ha terminado con un COMMIT o ROLLBACK es normal que se quede colgado (bloquedado).

Te recomiendo que el COMMIT y ROLLBACK lo ejecutes antes de mostrar el mensaje para que se libere la tabla de inmediato y no tengas bloqueos ya que de no ser así estará en función del MessageBox, es decir, permanecerá el bloqueo hasta que pulses el OK del MessageBox.

Saludos
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
Imágen de perfil de cotizandopc

¿Cuál es realmente la sintaxis para declarar un SP en Power Builder?

Publicado por cotizandopc (4 intervenciones) el 14/09/2016 17:45:28
Gracias por la aclaración(la información que me compartistes es muy valiosa, estoy enormemente agradecido), basándome en esto realicé algunos cambios, sin embargo, el problema estaba en mi SP, el INSERT lo rellenaba con un select. Ejemplo:

INSERT TABLA1(COLUM1,COLUM2,COLUM3)
SELECT @COL1, @COL2, @COL3

Y lo cambié por:

INSERT TABLA1(COLUM1,COLUM2,COLUM3)
VALUES (@COL1, @COL2, @COL3)

Y Comenzó a grabar sin ningún inconveniente(Antes se colgaba y no grababa a pesar del commit).

Nota: El script del SP(antes de realizar la modificación) me funcionaba si lo ejecutaba en la misma área de consultas.
--
Gracias por el apoyo Jorge, si no fuera por tu comentario, quien sabe cuando se me hubiera ocurrido revisar mi Procedure.
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