知りたい事
VBSに関してです。
環境によって「m_cnnCurr.BeginTrans」が使用できなかったり、
使用できたりします。(リンクサーバーを使用しています)
どういった理由が考えられるのかを知りたいです。
(m_cnnCurrにはCreateObject("ADODB.Connection")をセットしています)
発生している問題・エラーメッセージ
リンクサーバーを使用して、
リモート先のテーブルを更新する.vbsファイルを作成しました。
開発を行っている環境では、
VBS
1m_cnnCurr.Begintrans 2 3(SQL↓) 4SET XACT_ABORT ON 5(その他insert処理等) 6(SQL↑) 7 8If Err <> 0 Then 9 m_cnnCurr.RollBackTrans 10Else 11 m_cnnCurr.CommitTrans 12End If
このような記述で正常に動作するのですが、
検証する別環境で試したところ、
アクティブなトランザクションがありません
というようなエラーが表示されてしまいます。
試したこと
m_cnnCurr.Begintrans
m_cnnCurr.RollBackTrans
m_cnnCurr.CommitTrans
これらの記述を抜く事で検証環境で正常に動作しました。
補足情報
現在
SET XACT_ABORT ON
上記の記述を入れているのは
開発環境で開発中、この記述がなければ
「このセッションでは、これ以上のトランザクションを開始できません」
というエラーが表示されてしまうためです。
また、この記述は「エラーが発生時にトランザクションを全てロールバックする」という設定と
認識しており、そちらの方が不正データが発生せずに好都合なのではと考えております。
環境情報
開発環境、検証環境のどちらでもリンクサーバを使用しています。(環境はそれぞれ別のものです)
全てSQL Serverを使用しています。
開発環境
・ローカル:Microsoft SQL Server Standard (64-bit)
・リモート:Microsoft SQL Server Express (64-bit)
検証環境
・ローカル:(現在確認できておりません)
・リモート:Microsoft SQL Server Standard (64-bit)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/17 03:43
2019/10/17 04:15 編集
2019/10/17 04:22
2019/10/17 04:24