ODBC接続 DBのOpenに失敗します −その2−

[戻る]
kai 2003/02/21(金) 16:42:57
お世話になっています。
Win2000, VC6, MFC, SDIの環境です。

さきほど、「解決」としたのですが、解決していませんでしたので
再度、投稿します。m(__)m

osqlで試験用のデータベースをつくり、プログラムでOpenしようとすると
失敗します。
(MSDEをインストールし、SQL7はインストールしていません)

下記の"DSN="の部分をフルパスで指定しても結果は同じでした。
エラーメッセージは
"ODBC--'HogeDB.mdf'への接続が失敗しました。" です。

m_pDB = new CDaoDatabase;
strConnect.Format(_T("ODBC;DSN=HogeDB.mdf;UID=sa;PWD=;"));
m_pDB->Open(_T(""), FALSE, FALSE, strConnect);

ファイルの指定に誤りはないようです。
データベースを扱うのは初めてなので、何を調べたらよいか検討がつきません。

CDaoExceptionで例外をキャッチすると、m_pErrorInfo->m_lErrorCodeが3151でした。
この数値が何をしめすのか、どこを調べたらよいでしょうか?

お気づきの点がありましたら、ご教授願います。m(__)m

dairygoods 2003/02/21(金) 16:54:50
>strConnect.Format(_T("ODBC;DSN=HogeDB.mdf;UID=sa;PWD=;"));

このような方法で接続したことはありませんが、
DSNというのはODBCに登録したデータソース名ではないですか?

kai 2003/02/21(金) 17:08:19
dairygoodsさん お返事ありがとうございます。

>DSNというのはODBCに登録したデータソース名ではないですか?

はい、登録したデータソース名で試してもエラーになります。
拡張子も含めて指定した場合も失敗します。

引き続き、ご意見をお待ちしています。

kai 2003/02/21(金) 17:19:23
[[解決]]
>はい、登録したデータソース名で試してもエラーになります。
>拡張子も含めて指定した場合も失敗します。

本当に解決しました。
登録したデータソース名だけを指定すればよかったんですね。m(__)m
ファイル名だとばかり思っていました。
データソース名を指定した時もパスを付加していたので
それが間違いでした。

dairygoodsさん ありがとうございました。m(__)m

古いスレッドには追加発言できません。