Как объявить и использовать параметр в Powerbuilder с базой данных ASA - PullRequest
0 голосов
/ 08 июля 2011

У меня есть хранимая процедура с именем 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 Ответ

2 голосов
/ 02 декабря 2011

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

//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**;
...