Oracle ダイナセットの内容が元に戻ってしまう原因は?

解決


やまっさん  2004-08-24 18:41:21  No: 85236

すいません  編集途中で誤って送信してしまいました・・・

OS:Win2003 + VB6 + Oracle9.2.0.1.0  を使用しています。

下記のようなコードにて、不可思議?な現象が発生します。

    SQL = "SELECT * FROM TestTable where TestID = '1'"
    Set oraDS = oraDB.CreateDynaset(SQL, &H8) ''oipsr**ファイルを作らない(NoCache)

    ''抽出されるレコードは1件で、そのレコードのCodeというフィールドには
    ''AAAAという値が入っているとする

    oraDS.edit
    oraDS!code.Value = "DDDD"

    ''この時点では、oraDS!code.Value = "DDDD"
    oraDS.Update
    ''このUpdateを実行すると、oraDS!code.Value は 'AAAA'に戻ってしまいます。
    ''しかし、実際のDBの中身は'DDDD'になっています。

    oraDS.Close
    Set oraDS = Nothing

    この現象は、CreateDynasetオプションに、NoCacheを指定すると発生します。
    (オプションに0を指定すると発生しないのですが・・・)

    よって、アップデート後のダイナセットの値の参照が行えない(DDDDになっている
    事を期待している)ので困っています。
    訳あって、oipsr**ファイルを作りたくないので、CreateDynasetオプションには
    NoCacheを指定したいのです。
    
    この現象は回避できないのでしょうか?


no name  2004-08-24 22:00:12  No: 85237

トランザクションをCommitしていないだけでは?


KIM.J  2004-08-24 22:06:32  No: 85238

oraDS.Update後に
oraDS.Refreshを入れてもダメだろうか?


やまっさん  2004-08-24 23:37:06  No: 85239

no_name 様
KIM.J 様

回答ありがとうございます。
oraDS.Refreshで期待通りの結果が得られました。
何分まだ初心者なもので・・・

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加