ADOのコンポーネントを利用してのmdbアクセス – プログラミング – Home

ADOのコンポーネントを利用してのmd...
 
通知
すべてクリア

[解決済] ADOのコンポーネントを利用してのmdbアクセス


okamo
 okamo
(@okamo)
ゲスト
結合: 23年前
投稿: 2
Topic starter  

okamoです。

VC++でADOを利用し
AccessのMdbに接続しDBの操作を行うクラスを作成しています。

現段階では、

Open関数でmdbファイルに接続がうまくいきません。
例外処理になってしまいます。

Open(Provider=Microsoft.Jet.OLEDB.3.51,Data Source= + m_mdbFileName(DBのファイルパス名) + LoginId(NULL),Password(NULL),Option)
で呼び出しています。
どうか、ご教授お願いします。

void CCustomRs::CConnectionD()
{
CString mdbFileName;
// HRESULT hr;
IADORecordBinding *picRs = NULL;
//comライブラリの使用の開始!!
CoInitialize(NULL); //ポインタの初期化を行う。

_RecordsetPtr pRs = NULL;
_ConnectionPtr pConn = NULL;

pConn.CreateInstance(__uuidof(Connection)); // コネクションインターフェースの生成

try
{

CCustomRs rs;

// 手順 1接続を開く

CString str1;
CString mdbLoginName;
CString mdbPassword;

_bstr_t strCnn(LProvider=Microsoft.Jet.OLEDB.3.51,Data Source= + m_mdbFileName + ;);

pConn->Open(strCnn,NULL,NULL,adModeUnknown);

// _bstr_t(LProvider=Microsoft.Jet.OLEDB.3.51;Data Source=c:\\tysdbvc\\vcdb.mdb;),
// NULL, NULL);)

pConn->Close();

CoUninitialize(); //comライブラリのクローズ!!ADOを使用した処理が全て終了するのね。
}


引用未解決
トピックタグ
okamo
 okamo
(@okamo)
ゲスト
結合: 23年前
投稿: 2
Topic starter  

解決しました。

void CCustomRs::CConnectionD()
{
bool IsConnectionOpen ;
_ConnectionPtr pConnection ;
_RecordsetPtr pRecordset ;
long Ret ; // 下位関数からの戻り値
HRESULT hr ; // 下位関数からの戻り値

IsConnectionOpen = FALSE ; // 接続状態フラグ初期化

Ret = (long)AfxOleInit() ; // OLE DLL を初期化
if( Ret!=0 ) {
// return( -1 ) ;
}
// 接続文字列の設定
_bstr_t bstrSource( Provider=Microsoft.Jet.OLEDB.4.0; Data Source= + m_mdbFileName + ; ) ;
_bstr_t bstrUser( " ) ; // ユーザ名の取得
_bstr_t bstrPassword( " ) ; // パスワードの取得

try {
if( IsConnectionOpen==FALSE ) { // 接続状態チェック

// ADOクラスインスタンスの作成
hr = pConnection.CreateInstance( __uuidof( Connection ) );
if (SUCCEEDED(hr)) {
// データベースへの接続
hr = pConnection->Open(bstrSource,
bstrUser, bstrPassword, adModeUnknown);

if (SUCCEEDED(hr)) {
IsConnectionOpen = TRUE ;

}
else {
IsConnectionOpen = FALSE ;
}
}

}
}
catch (_com_error &e)
{
dump_com_error(e);
}
if( IsConnectionOpen==TRUE ) {
// BSTR bstrSQL = NULL ;
}
}

こんなソースです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました