1.定義_ConnectionPtrm_pConnection;
在CFaceDetectApp::InitInstance()中
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));
// 在ADO操作中建議語句中要常用try...catch()來捕獲錯誤資訊,
// 因為它有時會經常出現一些想不到的錯誤。jingzhou xu
try
{
// 開啟本地Access庫Demo.mdb
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("資料庫連接失敗,確認資料庫Demo.mdb是否在當前路徑下!");
return FALSE;
}
2 在CFaceDetectApp::ExitInstance() 中
// TODO: Add your specialized code here and/or call the base class
// 關閉ADO串連狀態
if(m_pConnection->State)
m_pConnection->Close();
m_pConnection= NULL;
3 在oninitdialog中
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset1.CreateInstance(__uuidof(Recordset));
m_pRecordset2.CreateInstance(__uuidof(Recordset));
try//開啟資料庫
{
m_pRecordset->Open("SELECT * FROM db1", // 查詢DemoTable表中所有欄位
theApp.m_pConnection.GetInterfacePtr(), // 擷取庫接庫的IDispatch指標
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}