こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VB2005でAddNew()

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

投稿日時 - 2008-07-23 19:26:21

QNo.4198801

すぐに回答ほしいです

質問者が選んだベストアンサー

直接の回答ではないですが、
.NET 使っているんだから、 ADO.NET の利用を強くお勧めします。

投稿日時 - 2008-08-18 11:49:02

お礼

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

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

投稿日時 - 2008-10-14 15:44:01

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

こちらで回答しておきました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=45747&forum=36

投稿日時 - 2008-08-20 18:09:29

お礼

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

早速見に行ってみます!

投稿日時 - 2008-10-14 15:44:40