Hola:
Cuando realizamos una transaccion de SQL desde PowerBuilder ( SQL Embebido ) lo que tenemos que hacer inmediatamente desdues de la transaccion es verificar el resultado de la misma; ejemplo
String ls_nombre
Decimal ldec_costo
//Suponiendo que en tu ventana tienes los controles sle_1, sle_2
ls_nombre = sle_1.text
ldec_costo = Double ( sle_2.text )
Insert Into Articulo ( nombre_art , costo_art ) Values (:ls_nombre , :ldec_costo );
If SQLCA.SQLCode = 0 Then
Commit;
Else
ROllBack;
End If
si la sentencia es Update;
Update Articulo Set nombre_art Where key_art = 10;
If SQLCA.SQLCode = 0 Then
Commit;
Else
ROllBack;
End If
Si lo quieres hacer en el mismo SQL (Store Procedure, Triggers, Funciones)
Create sp_Articulo (@ls_nombre varchar(50) , @ldec_costo Decimal
Begin Transaction
Insert Into Articulo ( nombre_art , costo_art ) Values (@ls_nombre , @ldec_costo )
If @@Error = 0
Commit Transaction
Else
Rollback Transaction
GO
Recuerda esto se hace para evitar DEADLOCKS.
SALUDOS, desde Chimbote, PERU
OJO: No se olviden despues de ejecutar un Store Procedure en PB ejecuten un COMMIT;