- PR -

.NETでのC/S型アプリでデータベースアクセス時に接続をオープン/クローズする?

投票結果総投票数:65
アプリ起動/終了時にオープン・クローズ 16 24.62%
データ操作時にオープン・クローズ 49 75.38%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-08-03 09:44
NAL-6295です。

トランザクションを意識しない処理の場合、基本的には接続したまま他のメソッドを呼ぶという事はしませんが、トランザクションを意識する場合は、メソッドAで作成したConnectionとTransactionをメソッドBに渡すようにしています。
メソッドB側は既にConnectionを保持していればそれを利用するし、保持していなければ、接続文字列からConnectionを生成するようにしています。
Micky
大ベテラン
会議室デビュー日: 2002/09/04
投稿数: 137
投稿日時: 2004-08-03 09:54
Mickyでございます。
いつもお世話になっております。

引用:

maruさんの書き込み (2004-08-03 09:30) より:

何かよい方法論があるのでしょうが、皆さんはどうされているのでしょうか?




方法論とまでは行かないかもしれませんが、
こういう時に威力を発揮するのが、「オブジェクト指向」
とか「デザインパターン」とか言った類のものではないでしょうか?

接続ー>処理ー>切断

と言う処理の手順をクラスにカプセル化してしまうのです。
単純な「接続」だけ、「切断」だけという処理は
外側からは出来ないようにしてしまうんですね。

もちろん、折角DB処理用のそういうクラスを作成しても
単独で無理矢理DBを操作しようとする処理を
いれられたらアウトですが、通常は
「DBの処理はこのクラスにおまかせ」と言う決め事を
作っておいて作業するのではないでしょうか?

単独で「接続」「切断」をしたい場合でも、
現在接続中かどうかを判断する処理を「クラス.接続メソッド」
に入れておけば制御は容易になると思います。

スキルアップ/キャリアアップ(JOB@IT)