最近在改一個VC的項目,需要靈活的配置數據庫連接,我用到了數據鏈接文件,使用UDL文件必須在系統中先安裝Microsoft MDAC,Win 2000以後的版本中都自動包含了該組件。關於UDL的使用只強調兩點。
m_pConnection->ConnectionString = "File Name = my_datal.udl";
1、等於號左右的空格一定要去掉,即:
m_pConnection->ConnectionString = "File Name=my_datal.udl";
2、UDL
m_pConnection->ConnectionString = "File Name=D://my_datal.udl";
最好是使用
GetModuleFilename(NULL...)得到當前程序文件所在路徑,然後從中提取出所在路徑,我寫的連接部分代碼,UDL文件和程序可執行文件在同一目錄下。- try
- {
- char dbfName[MAX_PATH];
- GetModuleFileName(NULL,dbfName,MAX_PATH);
- char *pstr = strrchr(dbfName,'//');
- if (pstr != NULL)
- {
- *pstr = '/0';
- strcat(dbfName,"//conn.udl");
- }
- CString sConn;
- sConn.Format("File Name=%s",dbfName);
- hr = m_pConnection.CreateInstance("ADODB.Connection");///創建Connection對象
- if(SUCCEEDED(hr))
- {
- m_pConnection->Open(_bstr_t(sConn),"","",adModeUnknown);
- m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);///連接數據庫
- }
- }
- catch(_com_error e)///捕捉異常
- {
- CString errormessage;
- errormessage.Format("連接數據庫失敗!/r/n錯誤信息:%s",e.ErrorMessage());
- AfxMessageBox(errormessage);///顯示錯誤信息
- return FALSE;
- }