■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#16695-0原因不明なODBCエラー発生?つーじー2000-02-23(水) 16:17
#16695-0
原因不明なODBCエラー発生?
NT4.0 SP5 & VB4.0 で開発を行っています。
動作保証されていないことは十分に承知の上なんですが、
とりあえずの回避方法が知りたいです。

SQL Serverのデータベースを更新しようとして。。。
コードの詳細は省きますが

    Sql = "SELECT rcount FROM " & d_zisseki_nama
    Sql = Sql & " where kbang like '" & usrno & "'"
        
    Set res_d_zisseki_nama = conn_NLP.OpenResultset(Sql, rdOpenDynamic, rdConcurRowver)
1    Do While res_d_zisseki_nama.EOF = False
2        If IsNull(res_d_zisseki_nama!rcount) = False Then
3            If res_d_zisseki_nama!rcount > 9999999 Then
4                res_d_zisseki_nama.Edit
5                res_d_zisseki_nama!rcount = res_d_zisseki_nama!rcount - 9999999
6                res_d_zisseki_nama.Update
7            End If
8        End If
9        res_d_zisseki_nama.MoveNext
10    Loop

これを実行したところ、6行目Updateのところで以下のエラーになってしまい、DB内容を確認すると
全てのレコードが5行目で指定した内容に変更されていました。

エラー番号:40002
エラーメッセージ:01S04: [Microsoft][ODBC Cursor Library] 複数行が更新または削除されました。

WHEREで条件を設定しているにもかかわらず、全てのレコードが変更されてしまう上にエラーなんて。。。
普通ならEdit〜Updateでカレントレコードのみ変更されていくと思うのですが。。。
やっぱり環境が問題なのでしょうか?

ほかのサイトに投稿したところ、

>NT4.0でVB4は動作保証されていないばかりか、SP4以降でODBC
>ドライバマネージャが変更されています。そのため、SP4以降
>では、ODBCドライバなどもすべて新しくなっていて、VB4.0の
>ODBC周りは正常に動くことはあまりありません。

と返ってきました。やっぱり原因はこれに尽きるのでしょうか?
ほかに回避方法はないでしょうか?
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)