アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラミングをする上で初歩的な質問で大変申し訳ありません。
通信系プログラムの開発経験が多く、DBを扱うプログラミングは殆ど無いに等しいレベルです。
アドバイスを頂きたい点として大きく2点ありまして、以下の各システムでのDB接続のタイミングと切断のタイミングがよく理解できていません。
1.Windows系SYS(主にVC, VBによるInterfaceを持つもの)でのDB接続と切断するタイミング
2.WEB系SYS(主にASP, JSP)によるDB接続と切断するタイミング

例えば、画面Aから画面Bに遷移する場合、画面AでDBとの接続を確立したまま画面Bに遷移をするのか、それとも画面単位で接続と切断を行なうといった考え方が基本なのでしょうか?

内容がうまくまとめられなくお見苦しいところばかりですが、アドバイスお願い致します。

A 回答 (1件)

DBはセッションを多く開くとパフォーマンスが落ちますので、


DBに接続し、必要なデータをSQL文ですべて引っ張ったら一旦クローズ、
処理終了後にDBに再接続しSQLで更新をかけるというのが普通のやり方
です。処理中はDBを対象とせず、プログラム側に引っ張ったデータで
処理する・・・ということですね。

ただ、この方法を取ると、検索~更新間に検索したデータに更新を
掛けられるとDBの整合性が取れなくなりますので、DB上に何か
フラグを立てるとか、プログラム上で整合性が取れる手段を考えます。

いずれにせよ、プログラム動作中にDBを開けっ放しにすることは、
プログラムが不正動作をした時にセッションをどう切るかという
ややこしい問題が発生しますので、何か特別な理由がある場合以外は
あまりやりません。
    • good
    • 0
この回答へのお礼

画面単位で接続・切断を行なうことが基本ということを念頭に置き、
製造しようと思います。
仰られる通り、DB側データとプログラム上データの整合性に関する問題もありました。排他制御の実現方法についても今後学んでいきます。
解りやすいアドバイスありがとうございました。

お礼日時:2007/10/12 13:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!