PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
4199 | 98/12/01 15:51:21 | RE(1):発言者補足 By kari |
4193 | 98/12/01 15:27:54 | PB6: SetChages/GetChangesでは削除フラグがリセットされない? By kari |
カテゴリ:PowerBuilderの不具合?
日付:1998年12月01日 15:27 発信者:kari
題名:PB6: SetChages/GetChangesでは削除フラグがリセットされない?
#ふたたび分散アプリケーション開発でのトラブルです。
リモートオブジェクトのデータストアとクライアントのデータウィンドウ
の同期処理の中で、データストアでDB更新をした後、更新フラグのリセットを
しても、Deleteバッファがクリアされない、という現象が起こっています。
このため、一度削除処理が実行されると、その次の更新でも同じDELETE文が
発行されてしまい、
「他ユーザによって削除されています」
のエラーが発生します。
詳細な処理内容とオペレーションは以下です。
1.データストアで検索処理、GetFullState関数でBlob変数にデータ取得
2.データウィンドウでBlob変数を受け取り、SetFullState関数でデータセット
3.データウィンドウで行を削除
4.データウィンドウで、GetChanges関数によりBlob変数に変更内容取得
5.データストアでBlob変数を受け取り、SetChanges関数で変更内容セット
6.データストアで、Update(TRUE,FALSE)でDB更新
#更新フラグをリセットしないオプション
更新成功したらCommitし、ResetUpdate関数で更新フラグをリセット
7.データストアでGetChanges関数によりBlob変数に変更内容取得
8.データウィンドウでBlob変数を受け取り、SetChanges関数で変更内容セット
9.データウィンドウで何らかのデータ変更を行う
10.4・5・6の処理後、「他ユーザによりデータが変更されています」
のエラー発生
処理の途中をデバッガ等でウォッチすると、6の更新フラグリセット後に、
データストアの削除バッファを調べると(DeletedCount関数)、
3で削除した件数だけ削除バッファに残っています。
不思議なのは、8でデータウィンドウに同期した後に、データウィンドウの
削除バッファを調べるとこちらはクリアされている(DeletedCountは0)。
ただし、10の5で再度データウィンドウ→データストアの同期をした後も、
データストアの削除バッファはやっぱり前の削除データが残ったまま。
これももはやPBのバグとしか思えません。
「私はちゃんとできたぞ」等の情報でも構いません。
なにかご存知の方がいらっしゃいましたらよろしくお願いします。
#長文、大変失礼いたしました。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS DBMSクライアントソフトウェアなし
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Sybase SQL Anywhere Standalone
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.