- - PR -
ADO.NET+JET4.0を使用してのMDBアクセスについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-01-19 10:13
いつもお世話になっております。
色々文献を調べたのですがどうしても分かりませんでした。 宜しくお願い致します。 現在、予算の都合上どうしてもMDBデータベース+JET4.0を使用し、フォームなどは.NETで作成するというアプリケーションを構想中ですが、データの整合性・信頼性を高める為、最大限の努力をしたいと思っております。(MSDEの導入は今のところ考えておりません) 具体的には @毎日MDBファイルの最適化・バックアップを行う AJETの読み込みキャッシュ・書込みキャッシュを使用しない BOSキャッシュをバイパスする C明示的なトランザクションを行う などを考えております。 ですが文献ではADO(レコードセット)の記述しかなく、ADO.NET(データセット)を使用する場合にA〜Cの処理が必要なのかがわかりません。 また必要であるならばどのように実装すれば良いのかも分からず、困っております。 元々、ADO.NET+JET4.0でJETのキャッシュ処理を操作する事は不可能なのでしょうか? どなたかご回答宜しくお願い致します。 | ||||||||
|
投稿日時: 2007-01-19 10:40
接続文字列として、パラメータを渡せばよい。 http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpado260/htm/mdrefjetprovspec.asp
動作環境への配慮もお忘れなく。 http://support.microsoft.com/kb/303528/JA/ | ||||||||
|
投稿日時: 2007-01-19 16:43
ぬしさん、早速のご回答ありがとう御座いました。
そういうやり方があったのですね。。。 もう少し理解を深めてチャレンジします。 ありがとう御座いました。 | ||||||||
|
投稿日時: 2007-01-22 08:21
ぬしさん先日は有難う御座いました。
ご回答の通り接続文字列に以下のようなパラメータを設定しましたが、どのようなパラメータを渡せば良いのか良く分かりませんでした。 これで読み込み・書込み・OSキャッシュ共使用しない設定になるのでしょうか? なおACCESS2003を使用しておりますが、Engine Type は 5 にすべきなのでしょうか? ご回答宜しくお願い致します。 '接続パラメータ設定 m_dbconnstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath m_dbconnstr &= ";Mode=Share Deny None" m_dbconnstr &= ";Jet OLEDB:Engine Type=4" m_dbconnstr &= ";Jet OLEDB:Database Locking Mode=0" m_dbconnstr &= ";Jet OLEDB:Global Partial Bulk Ops=2" m_dbconnstr &= ";Jet OLEDB:Global Bulk Transactions=1" m_dbconnstr &= ";Jet OLEDB:Transaction Commit Mode=1" m_dbconnstr &= ";Jet OLEDB:User Commit Sync=1" | ||||||||
|
投稿日時: 2007-01-22 09:34
リファレンスを読みましょう。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-01-24 08:27
じゃんぬねっとさんご指摘ありがとうございます。
申し訳ございません、リファレンスを読んだのですがよく理解できませんでした。 なんとかヒントを頂けないでしょか?宜しくお願い致します。 尚、以下の接続文字列を追加すると”インストール可能なISAMドライバーが見つかりませんでした。”とエラーになってしまいます。 m_dbconnstr &= ";Jet OLEDB:Transaction Commit Mode=1" m_dbconnstr &= ";Jet OLEDB:User Commit Sync=1" JETのキャッシュを使用せずにすぐにディスクに書き込ませるつもりで付け加えたのですが回避する方法はありますでしょうか? | ||||||||
|
投稿日時: 2007-01-24 10:24
目的が不明なんですが、JET のキャッシュを回避してみたところで、その後ろにはディスクキャッシュが待ち構えているんじゃないでしょうか。 それをも回避するためには MDB 接続を一旦すべて閉じる必要があって、MDB 接続を閉じる時にはもれなく JET のキャッシュもフラッシュされるはずで、問題にならない気がするのですが。。。 | ||||||||
|
投稿日時: 2007-01-24 13:07
渋木宏明さん、ご回答ありがとうございます。
目的はJETで使用される読み込みキャッシュ・書込みキャッシュをフラッシュして更新したデータがすぐに反映されていて欲しいのですが。 初期設定ではディスクから読み込みキャッシュへの再読み込みは最大で5秒と記述がありましたので。 読み込み時は読み込みキャッシュをフラッシュして最新のデータが読み込まれ、書込み時は同じレコードを更新する場合に整合性が保たれるよう即、書込みが出来るようにしたいのですが。 JETがマルチユーザー環境に不向きなのは承知しておりますが、どうしても避けられずなんとか出来る限りの対処はしたいと考えております。 宜しくお願い致します。 |
1