PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
2283 98/07/08 14:51:05 PowerSoftからの回答(マニュアルの記載ミスということで納得) By Hanafusa
2277 98/07/08 10:33:57 追加情報 By Taka
2259 98/07/07 09:54:18 Update関数を実行してもSQLCAには値が返されません By てとらぽっと
2240 98/07/03 20:42:25 PB5.0.03: Update関数実行後のSQLCA.sqlnrowsの値について By Hanafusa

カテゴリ:旧電子会議室
日付:1998年07月07日 09:54 発信者:てとらぽっと
題名:Update関数を実行してもSQLCAには値が返されません

Hanafusaさん、おはようございます。
こちら(PB5.0.02&Oracle7.1)でもその現象は確認しています。

自分でSQL構文を発行したときは、ちゃんと更新行数/削除行数が SQLCA.SQLNRows に格納されています。
Update関数ではこの値が返らず、COMMIT後には更新行数/削除行数とは関係なく COMMITが成功した何らかの
情報が返っているようです。
Update関数は戻り値だけで正否判定すればいいと思いますので、SQLCA.SQLNRows は重要視していません。
(更新が 0行とかに関わらず、成功なら COMMITでいいわけですから)

ちなみに Update関数(あるいはPBの関数?)実行後には SQLCA には何の値も格納されません。
COMMITはSQL構文なので SQLCA はちゃんと返ってます。


>UPDATE関数を実行した後で、SQLCA.sqlnrowsの値を確認して更新された行数を
>確認し、正常に更新されていればCOMMIT、そうでなければROLLBACKをするような
>スクリプトを記述してみたのですが、SQLCA.sqlnrowsの値が入るタイミングがUPDATE
>関数の直後ではなく、COMMIT後に値が設定されているようです。
>オンラインマニュアル等のサンプルを見る限りでは、Update後にはSQLCA.sqlnrowsに
>値が入るようなサンプルがあります。

>(例)
>rtn = dw_1.Update()
>IF rtn = 1 AND SQLCA.sqlnrows > 0 THEN
> COMMIT USING SQLCA;
>ELSE
> ROLLBACK USING SQLCA;
>END IF

>SQLCA.sqlnrowsの使用方法について詳しくご存知の方がいらしたら
>教えて頂けませんか?


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows 3.1
DBMS Oracle SQL*Net 1.0
Browser (記載なし)

Server SoftWare

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

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