PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
23839 | 11/12/12 10:24:24 | RE(3):PB12.1:排他制御時のRetrieve関数のエラーについて(解決) By shiho |
23834 | 11/11/04 12:32:46 | RE(2):PB12.1:排他制御時のRetrieve関数のエラーについて By shiho |
23833 | 11/11/02 19:32:39 | RE(1):PB12.1:排他制御時のRetrieve関数のエラーについて By ZONE |
23829 | 11/10/21 14:20:37 | PB12.1:排他制御時のRetrieve関数のエラーについて By shiho |
カテゴリ:スクリプトの記述
日付:2011年12月12日 10:24 発信者:shiho
題名:RE(3):PB12.1:排他制御時のRetrieve関数のエラーについて(解決)
サポートセンターからきた回答をご報告します。
下記スクリプトの(3)(4)について、DataWindowのdberrorイベントで行っていたのですが、
(2)でRetrieveを実行し、その途中で再度(4)のRetrieveを実行しているため、
1回目のRetrieveが完全に完了していない段階で再度Retrieveを実行しているので
今回の事象が発生しているそうです。
「この動作自体は予期した動作であるため、以前のバージョンの動作が予期しない動作となる」
との回答でした。
DataWindowのdberrorイベントで行っていた処理を、Windowの別イベントに移すことで対応しました。
PB6.0からずっとこのスクリプトで処理できていたので、以前がおかしいと言われても
釈然としないところなのですが。。。
>>>PB10.2からPB12.1へマイグレーションしています。
>>>PB12.1で下記の現象が起きており、原因が分からない状態です。
>>>クライアントのOSはWindows7,VISTA,XP、DBMSはOracle11gになります。
>>>
>>>【現象】
>>>同じ画面を二人で起動した場合に、後から起動した画面は排他制御をかけ、更新不可で検索可能の状態
で
>>>画面を開こうとしています。
>>>PB10の場合はデータウィンドウが検索可能でしたが、PB12ではデータウィンドウの表示が出来ません。
>>>
>>>【スクリプト】
>>>(1)排他制御を掛けるため、データウィンドウにModify関数で「DataWindow.Table.Select=
>>> Select文 for update of Table名 nowait」と設定します。
>>>(2)データウィンドウをRetrieveしてデータを表示します。
>>>(3)この際に排他制御がかかっている場合は、排他制御を外すためデータウィンドウにModify関数で
>>> 「DataWindow.Table.Select=Select文」と設定し直します。
>>>(4)データウィンドウをRetrieveしてデータを表示します。
>>>
>>>上記の(4)でRetrieve関数の戻り値が-1で返ってきて、データが検索できません。
>>>PB10.2ではエラーにならず、データが表示できていました。
>>>
>>>原因、解決策をご存知の方はいらっしゃいませんでしょうか。
>>>よろしくお願いいたします。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS (記載なし)
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.