- PR -

VB6とDAOでDLL内で接続オブジェクトを共有する良い方法

投稿者投稿内容
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-08-22 09:33
引用:

Ahfさんの書き込み (2006-08-21 20:09) より:

私はR・田中一郎さんと同様に、プロセス開始の時点でコネクションを生成・接続し
終了の時点で解放する、という方式での開発を行っていた側です。


確かに、そういう方法が一般的ではありましたよね。
と言うか、遅くて毎回接続できなかったため、やむを得ずということでした。

今回の場合は、以前作ったものだったので、この延長線上で考えていたのです。

今の環境で都度開いたり閉じたりしてみたのですが、、そんなに気にならない速度だということがわかりました。
であれば、僕の悩みも解決できますし、都度開いたり閉じたりしようと思います。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-22 10:45
引用:

Ahfさんの書き込み (2006-08-21 20:09) より:

VB6の世代まで来ると、HWなどのリソースが豊富になったこともあり、
使用後即解放、というのが主流になったと思っていますが、
それ以前の場合は都度解放を行っているとレスポンスが悪かった
ため「都度解放はご法度」という記憶があります。


今回は VB6 だったので 「即クローズ」 だと言い切ってしまったわけですが、
VB4 以前は、そういうのが残っているケースが多いらしいですね。

# VB4 の頃は、まだ中学生... 詳しくはわかりません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
oracle
常連さん
会議室デビュー日: 2003/12/04
投稿数: 29
お住まい・勤務地: さいたま
投稿日時: 2006-08-22 11:28
古い人間からです(井戸といえるほど優秀ではありません)

VB4でかつて開発してたころはメモリも少なかった(Wind95で16M)ので、
Exeがおおきくなると異常終了してしまうこともありました。なので、
画面ごとに別Exeを作成して、メニューから、Shellで各画面を起動していました。
なので、画面ごとにSessionがありました。(複数画面起動可です)
但し、Form_LoadでSessionつないで、画面CloseのときにSession切って、、、って
かんじでした。
VB5になっていろいろな面で安定したみたいですが、、、、

上記方法で作成したかつての私のプロジェクトは現在も使用されています、、という話
を現在の管理者から聞きました、、メモリは増えたという話です。

DLL化して昔、隣の机の人が悩んでいたのは、DLL内でつないで、その呼び元のExeが異常終了
したときに、DLL内のSessionが残ってしまっていたことです。そのときはDLLでつなぐ絶対的
な必要性がなかったので、Session管理しやすい方で修正していました。その後、原因調査は
行っていませんが、、、、参考になるかはわかりませんが、、、

じゃんぬさん、VB4のころ中学生ですか、、、若いですね。









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