ADOでJetデータベースに接続しようとするとクラッシュする
村田敦
0
評価のポイント
Visual C++でADOを使用してJetデータベースに接続しようとすると、Openの実行でクラッシュする事象が発生しています。
イベントログを見ますと発生個所はmsjetoledb40.dllになっています。
事象の発生は環境に依存しているようなのですが、条件については特定できていません。
報告は昨年あたりから増えていますが、Windows11でOffice365を使用している場合が考えられます。
発生個所のソースコードは以下のようになっています。
ADODB::_ConnectionPtr pConnection;
CString conect.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password=%s;",dbname,pass);
pConnection.CreateInstance(__uuidof(ADODB::Connection));
pConnection->PutMode(ADODB::adModeReadWrite);
_bstr_t conect_bstr(conect);
pConnection->Open(conect_bstr,"","",ADODB::adConnectUnspecified);
プログラムは32ビットアプリケーションとして作成しています。
データベースファイルのファイルパスとパスワードに間違いがないことは確認済みです。
Jet4.0を使用しているのが問題である可能性もあるため、
ACE16.0に変更して、事象が発生している環境で実行しましたが同様の結果となりました。
この事象の対応策があれば教えていただけないでしょうか。
サインインして回答する