PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
6967 99/07/01 22:07:25 RE(1):PB5.0.04: Sybase SQL AnywhereのTimeStampについてどなたか教えてください。 By あすかちゃんの父
6966 99/07/01 20:44:24 PB5.0.04: Sybase SQL AnywhereのTimeStampについてどなたか教えてください。 By VAN

カテゴリ:PowerBuilderの開発環境
日付:1999年07月01日 22:07 発信者:あすかちゃんの父
題名:RE(1):PB5.0.04: Sybase SQL AnywhereのTimeStampについてどなたか教えてください。

VANさん、こんばんは。

>を作成しました。アプリケーション側でTimeStamp型のカラムをセットしなくてもSybase側でUpdate時にセットされ

>す。しかし、アプリケーション側でTimeStamp型のカラム以外を入力しDataWindowをUpdateした後、続けてその行を
>DeleteRowして再度Updateすると、\"検索と更新の間に行が変更されました。\"と表示されUpdateは無視されます。ち

>みに、最初のUpdate後、アプリケーションを終了し再度、アプリケーションを起動し、DeleteRow・Updateを行うと

>まく更新されます。(なお、TimeStamp型のカラムは主キーに設定してあります。)

これはTimeStamp型の問題ではなく、
・キーカラムをデフォルトで設定している
・キーカラムを更新している
ということが原因で、エラーが出ていると思います。
更新のときに行を特定するためにデータウィンドウの生成するUpdate、
Delete文は、最低キーカラムの値をWhere句に含めています。この時に
Where句の比較演算で使われる値は、データウィンドウバッファの値です。

「アプリケーション側でTimeStamp型のカラム以外を入力しDataWindow
をUpdate」すると、サーバ側はデフォルトの値が入りますが、データウィ
ンドウはNullのままです。
「続けてその行をDeleteRowして再度Update」したときのDelete文の
Where句は「Where colum is null」となるので、一致する行が存在せず
エラーになっています。

これを回避するには、Insertが成功した直後に、SELECTを実行しデフォル
ト設定された値を読み込む必要があります。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

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

Server SoftWare

OS (記載なし)
DBMS Sybase SQL Anywhere Standalone
WebServer (記載なし)

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