2

おそらくばかげた質問です。

Microsoft Access データベース (.mdb) を使用して特定の情報にアクセスし、OLEDb を使用して監視データをテーブルに入力するアプリを自分のマシンで開発しました。

アプリケーションは私のマシンでは正常に動作しますが、リリースをテスト マシン (MS Access なし) に置くとクラッシュします。興味深いことに、データベース ファイル名を変更したばかりのテスト マシンでアプリケーションを起動すると、データがなくても、本来のようにロードされます。

UnauthorizedAccessException 例外がスローされたようで、混乱がさらに悪化しています。

開発マシンとテスト中のマシンの両方に .NET 3.5 がインストールされています。

私の質問には「いいえ」という返事が返ってくると思いますが、一体何なのですか? テスト マシンには MS Access がインストールされている必要がありますか?

よろしく

4

6 に答える 6

4

ここから Office 接続コンポーネントをダウンロードしてみてください。これにより、Access をインストールしなくても、Access データベースの読み取りと作成が可能になります。

于 2009-11-06T16:00:21.390 に答える
2

MS Access は必要ありませんが、Access のバージョンに必要なドライバーが必要です。正確な例外とメッセージをログに出力するテスト リリースを実行する必要がある場合があります。

于 2009-11-06T15:55:54.253 に答える
2

最新の Jet 4 OLEDB ドライバーがインストールされていることを確認してください。ネットワーク共有からアプリケーションを実行する場合にも問題が発生する可能性があります (制限された権限で実行されます)。

于 2009-11-06T16:06:14.417 に答える
1

問題はハードウェアの問題であることが判明しました。私が使用していたカードのシリアル ポートの 1 つが、新しいマシンに移動したときに機能しなくなりました。

例外が示唆していたように、問題はデータベースに関連していないことが判明しました。

ただし、JET に関するいくつかの興味深い点が提起されました。これは、データベース アクセスの問題を抱えているすべての人にとって役立つ可能性があります。

助けてくれてありがとう。

于 2009-11-11T16:31:20.597 に答える
1

あなたはUnauthorizedAccessExceptionを得たと言います。最初に .mdb ファイルと場所への読み取り/書き込みアクセス許可を確認します。

サービスとして実行している場合は、より制限されたアカウントで実行されることに注意してください。

于 2009-11-06T16:00:32.553 に答える
1

Access 自体は必要ありません。JET ドライバーと関連ファイルは、少なくとも開発マシンと同じくらい最新のものである必要があります — 古いマシンをリサイクルしてテストに使用する場合、それが問題になる可能性があります。

ただし、これは、Access のセキュリティ メカニズムを使用している場合は、データベース ファイル自体またはファイル内のアクセス許可の問題のように思えます。

于 2009-11-06T16:07:24.647 に答える