Как объявить и использовать параметр в Powerbuilder с базой данных ASA

У меня есть хранимая процедура с именем sp_getnextautono(as_sequenceid Char(20), as_sequenceno double output)

В Powerbuilder я написал следующее:

//Declaration
Declare proc_autono Procedure for sp_setnextautono 
@as_sequenceid = :ls_input, 
@as_sequenceno = :ld_sequenceno;

//Execution
Execute proc_autono;

If Sqlca.Sqlcode <> 0 Then
   ls_errormsg = Sqlca.SQLErrText
   Rollback Using Sqlca;
   MessageBox( 'Error', 'Error: ' + Sqlca.SqlErrText , Stopsign! )
   Return FAILURE 
End If

// Fetch
Fetch proc_autono Into :ld_sequenceno;

If Sqlca.Sqlcode <> 0 Then
   ls_errormsg = Sqlca.SQLErrText
   Rollback Using Sqlca;
   MessageBox( 'Error', 'Error: ' + Sqlca.SqlErrText , Stopsign! )
   Return FAILURE 
End If

Там нет ошибки, но я не могу получить sequenceno,

Переменная ld_sequenceno возвращается 0,

Может кто-нибудь посоветовать мне, как решить вышеуказанную проблему?

1 ответ

Это ваш код (который почти подходит):

//Declaration
Declare proc_autono Procedure for sp_setnextautono
    @as_sequenceid = :ls_input,
    @as_sequenceno = :ld_sequenceno;

Вам не хватает только указать, что:ld_sequenceno является переменной OUTPUT. Попробуйте следующее, и все должно быть в порядке:

//Declaration
Declare proc_autono Procedure for sp_setnextautono
    @as_sequenceid = :ls_input,
    @as_sequenceno = :ld_sequenceno **OUTPUT**;
Другие вопросы по тегам