C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: CommitTransの不具合


(過去ログ 138 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■81107 / inTopicNo.1)  CommitTransの不具合
  
□投稿者/ HK (1回)-(2016/08/30(Tue) 09:21:59)

分類:[VB.NET/VB2005 以降] 

VBの開発バージョン : Visual Basic 2010
アプリのエンドユーザーバージョン : Visual Basic 2010
mdbバージョン : Access2000

Dim ws As DAO.Workspace 'ワークスペース
Dim db As DAO.Database 'データベース
Dim rs As DAO.Recordset 'レコードセット
Dim rs2 As DAO.Recordset 'レコードセット

'DAOの設定
ws = DAODBEngine_definst.Workspaces(0)
db = ws.OpenDatabase(strMdbName)

ws.BeginTrans
は、エラーなく正常にトランザクションがかかっているにもかかわらず、
ws.CommitTransで
「Error #3034: コミットまたはロールバックを実行するには、BeginTrans メソッドを使用してください。」
エラーになることがあります。
この原因について教えていただけませんでしょうか?

この現象の再現性はなく、まれに発生します。

シーケンスとしては、
rsにレコード抽出結果を蓄える
ws.BeginTrans

rs.Edit()
rsのFieldの値を書き換え
rs.Update()

rs2にレコード抽出結果を蓄える
rs2のレコードを削除
rs2.Close()

他のテーブルにレコードを追加

ここまでは、エラーが発生することはありませんでした。

ws.CommitTrans
でエラーが発生します。

引用返信 編集キー/
■81109 / inTopicNo.2)  Re[1]: CommitTransの不具合
□投稿者/ 真田昌幸 (61回)-(2016/08/30(Tue) 09:39:24)
No81107 (HK さん) に返信
> VBの開発バージョン : Visual Basic 2010
> アプリのエンドユーザーバージョン : Visual Basic 2010
> mdbバージョン : Access2000
>
> Dim ws As DAO.Workspace 'ワークスペース
> Dim db As DAO.Database 'データベース
> Dim rs As DAO.Recordset 'レコードセット
> Dim rs2 As DAO.Recordset 'レコードセット
>
> 'DAOの設定
> ws = DAODBEngine_definst.Workspaces(0)
> db = ws.OpenDatabase(strMdbName)
>
> ws.BeginTrans
> は、エラーなく正常にトランザクションがかかっているにもかかわらず、
> ws.CommitTransで
> 「Error #3034: コミットまたはロールバックを実行するには、BeginTrans メソッドを使用してください。」
> エラーになることがあります。
> この原因について教えていただけませんでしょうか?
>
> この現象の再現性はなく、まれに発生します。
>
> シーケンスとしては、
> rsにレコード抽出結果を蓄える
> ws.BeginTrans
>
> rs.Edit()
> rsのFieldの値を書き換え
> rs.Update()
>
> rs2にレコード抽出結果を蓄える
> rs2のレコードを削除
> rs2.Close()
>
> 他のテーブルにレコードを追加
>
> ここまでは、エラーが発生することはありませんでした。
>
> ws.CommitTrans
> でエラーが発生します。

rs2を先に閉じてるからじゃありません?


引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -