- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLで同じDBに対し2つのコネクションをもてる?)
SQLで同じDBに対し2つのコネクションを持つ方法と問題の有無について
このQ&Aのポイント
- SQLServer2005ExpressEditionとVB.NETで、ひとつのDBに対して、コネクションを2つ持つことは可能ですか?または、問題などおこりませんか?
- 接続を生成する際に接続文字列を指定し、それぞれのコネクションを開くことができます。特に問題はなく、両方の接続が正常に行われる場合でも問題はありません。
- ただし、同じトランザクション内で複数のコネクションを使う場合は、注意が必要です。データの整合性や排他制御の問題が生じる可能性があります。例えば、一方のコネクションでデータを更新した後、もう一方のコネクションから同じデータを取得すると、更新前のデータが表示されることがあります。このような場合は、トランザクションを適切に管理する必要があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
実際に不可能ではないですが、 片方のコネクションがトランザクションを開始してしまい、 あるテーブルの行を更新してしまうと、 もう片方のコネクションはコミット待ち状態になります。 本来、コネクションは複数持つべきではありません。 SQLServerの同時接続数にも触れますし、 1つのコネクションを使いまわすのが一般的です。 コネクションは引数等も利用して1つにするように心掛けましょう。
その他の回答 (1)
- nora1962
- ベストアンサー率60% (431/717)
回答No.1
cSqlConnectionとcSqlConnection1は別セッションになるでしょう。 という事は、ダーティリードを許さない限り一方の更新は他方のセッションでは見られない。 また、場合によっては一方の更新だけが確定して、不整合を起こす可能性もあります。
質問者
お礼
ありがとうございます。 片方での更新が、もう片方では見れないのですね。 勉強になりました。
お礼
ありがとうございます。 コネクションを複数持つべきではないのは承知しているのですが、持たざるを得ない状況が発生してしました。 ご回答内容、参考になります。