プロが教えるわが家の防犯対策術!

VB2005Express、SQLServer2005にて開発を行っています。

テーブルに対してSELECTを行った結果、該当レコードがなかったらAddNewでレコードを追加しようと実行すると
「現在のRecordsetは更新をサポートしていません。プロバイダか選択されたロックタイプの限界の可能性があります。」
というエラーが発生します。
レコードセットのパラメータを色々変えてみたのですが状況が変わりません。どなたか原因がお分かりの方いらっしゃいましたら教えて下さい。

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
strCn = "Provider=WWW;Password=XXX;User ID=YYY;Data Source=ZZZ;Persist Security Info=True"

cn.Open(strCn)
cn.BeginTrans()

Try
strSQL = "SELECT * FROM テーブル1"
  rs.Open(strSQL, cnGSTAFF, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
If rs.EOF Then
'登録
rs.AddNew()
rs.Fields("コード").Value = 10000
rs.Fields("内容").Value = "OK"
Else
'更新処理
End If

rs.Update()
rs.Close()
cn.CommitTrans()
cn.Close()
Catch ex As Exception
rs.Close()
cn.RollbackTrans()
End Try

A 回答 (2件)

直接の回答ではないですが、


.NET 使っているんだから、 ADO.NET の利用を強くお勧めします。
    • good
    • 0
この回答へのお礼

回答していただきありがとうございます。
お礼が遅くなって申し訳ありません。

ADO.NETを勉強して使用してみます。

お礼日時:2008/10/14 15:44

こちらで回答しておきました。


http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …
    • good
    • 0
この回答へのお礼

回答していただきありがとうございます。
俺が遅くなって本当にすいません。

早速見に行ってみます!

お礼日時:2008/10/14 15:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!