以下のソースでデータベースに接続しようとしたのですが、
上手く接続できません。
VC++、データベース共に初めて触るので、行き詰まっています。
どなたかご教授いただけないでしょうか?
開発環境は、Win98 VC6.0 Access2000 です。
--------------------------------------------------------------
#include <stdio.h>
#import C:\Program Files\Common Files\System\ADO\msado15.dll rename_namespace
(ADOCG) rename(EOF, EndOfFile)
using namespace ADOCG;
_ConnectionPtr m_pConnect; // Connectionオブジェクト
_CommandPtr m_pCommand; // Commandオブジェクト
_RecordsetPtr m_pRecordset; // Recordsetオブジェクト
void main()
{
for(;;Sleep(1000)) {
try {
// データベースへの接続
m_pConnect->Open( LFile Name=C:\\db1.mdb;, L", L",
adModeUnknown ) ;
break ;
} catch(_com_error &e) {
printf( %d\n, e.ErrorInfo() ) ;
printf( %d\n, e.Error() ) ;
}
}
・
・
・
}
--------------------------------------------------------------
_com_error::ErrorInfo = 0
_com_error::Error = -2147467261 が返ってきています。
回答ではありませんが、
とりあえず、「教えてください」という題名はやめてくださいね。
質問内容が全くわかりませんから、題名として機能していません。
この辺は、
「発言される前に「使用上の注意」を必ずお読み下さい。」
です。
こんにちは
引数の文字列はワイド文字列ではなく_bstr_tでは?
動いている私のプログラムのソースです。参考になれば幸いです。
CString strCommandText;
strCommandText.Format(Provider = SQLOLEDB; Data Source = %s;
User ID = %s; Password = %s;Initial Catalog = %s,
ServerName, UserID, Password, DatabaseName);
pConn->Open((_bstr_t)strCommandText, ", ", adConnectUnspecified);
第3水準と申します。
DB使用前の
::CoInitialize(NULL);
と、DB使用後の
::CoUninitialize();
は行っていますでしょうか?
特に、CoInitializeは行っていないとDBに接続できません。
また、ADO関係ならば
http://www.microsoft.com/japan/developer/library/ado260/dasdkadooverview.htm
が参考になると思います。