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 (記載なし)

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