標籤:資料庫 vc++ ado access2000
第一次接觸ADO資料庫,自己的一點經驗,在這裡總結一下,以免後面忘記了,再重新來看。也許文字中有錯誤,請大家能給予指正。本文中使用的資料是access2000.
.h標頭檔中定義一下變數:
_ConnectionPtr m_pConn;
_RecordsetPtr m_pRecSet;
_CommandPtr m_pComd;
.cpp源檔案中實現資料庫的串連
//串連資料庫
bool MyDlg::ConnDb(void)
{
CString sPath;
CString Serror;
CString strSql;
//擷取當前路徑,並放在sPath中。
GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
//釋放上面函數中分配的buffer記憶體。
sPath.ReleaseBuffer();
int nPos;
//定位最後一個\\所在的位置
nPos=sPath.ReverseFind(‘\\‘);
//取出最後一個\\的左側部分
sPath=sPath.Left(nPos);
//將資料庫名字串連到sPath中。
sPath+="\\MyDateBase2000.mdb";
CFileFind finder;
//查看此資料庫檔案是否存在
if(!finder.FindFile(sPath)){
MessageBox("資料庫檔案不存在!",NULL,0);
return FALSE;
}
CString connStr;
HRESULT hRet; //用來接收介面返回的代碼部分,如果介面返回成功,則這個值為0,如果不
//成功,則包含返回的錯誤狀態資訊
try
{
//Connection代表一個windows應用程式和一個SQL服務資料庫引擎執行個體的串連
//__uuidof擷取Connection的唯一識別碼
//CreateInstance建立一個對象執行個體
hRet=m_pConn.CreateInstance(__uuidof(Connection));
if(!SUCCEEDED(hRet)) return FALSE;
//CursorLocation 是ADODC對象的遊標庫的位置,預設值是adUseClient
m_pConn->CursorLocation = adUseClient;
connStr.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s",sPath);
//Open調用次函數初始化一個建立的CDaoDatabase對象,這個對象代表一個現有的數
//據庫資源。
hRet=m_pConn->Open((_bstr_t)connStr,"","",adModeUnknown);
if(!SUCCEEDED(hRet)) return FALSE;
//m_pComd命令指標
hRet=m_pComd.CreateInstance(__uuidof(Command));
if(!SUCCEEDED(hRet)) return FALSE;
m_pComd->ActiveConnection = m_pConn;
//m_pRecSet記錄集指標
//通過使用 Recordset 屬性可以使用 ADO ADODB.Recordset 對象的方法、屬性和事
//件。
hRet=m_pRecSet.CreateInstance(__uuidof(Recordset));
if(!SUCCEEDED(hRet)) return FALSE;
}
catch (_com_error e)
{
Serror.Format("資料庫連接失敗:%s",e.ErrorMessage());
AfxMessageBox(Serror);
}
}
//關閉資料庫
void CLevelTestDialog::CloseDatabase()
{
m_pRecSet = NULL; //釋放記錄集
if(m_pConn->State)
{
m_pConn->Close(); //關閉串連
}
m_pConn= NULL; //釋放串連指標
}
本文出自 “8453831” 部落格,請務必保留此出處http://8463831.blog.51cto.com/8453831/1530360
VC++連結ADO資料庫