PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
18073 02/08/30 12:09:16 RE(2):PB7.0: ストアドプロシージャから、ストアドプロシージャが見えない? By Sei
18072 02/08/30 11:57:04 RE(1):PB7.0: ストアドプロシージャから、ストアドプロシージャが見えない? By odenboy
18070 02/08/30 10:14:22 PB7.0: ストアドプロシージャから、ストアドプロシージャが見えない? By Sei

カテゴリ:スクリプトの記述
日付:2002年08月30日 11:57 発信者:odenboy
題名:RE(1):PB7.0: ストアドプロシージャから、ストアドプロシージャが見えない?

Seiさん、こんにちは。

>上のようにストアドプロシージャ(ファンクション)を定義した場合、PBから呼び出す際に
>Transactionオブジェクトのローカル外部関数とし、

>// Transactionオブジェクトのローカル外部関数の宣言
>SUBROUTINE SMP_PRO(Ref String OUT_NAME) RPCFUNC // (ALIAS FOR \"SMP_PRO\")
>// 通常処理中のスクリプト
>String msg
>SQLCA.SMP_PRO( msg )

>上のように使用した場合、期待する戻り値が得られません。

このようなケースでは、結果を受け取る変数msgについて、
十分なメモリ空間を確保してから関数をコールする必要が
あるのではないかと思います。

以下のようにすれば大丈夫だと思います。
試してみてください。

String msg
msg = Space(40)
SQLCA.SMP_PRO( msg )

おそらく、これはDatabaseのストアドプロシージャに限らず、
外部関数から文字列を受け取る場合に共通の事柄かと思うのですが・・・。



付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS (記載なし)
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.