1. 程式人生 > >VC6.0中用ado連接數據庫出錯

VC6.0中用ado連接數據庫出錯

連接 sta 可能 cti mod ole dll jet enable

1. 在stdafx.h中添加 #import "c:\\program files\\common files\\system\\ado\\msado15.dll" no_namespace rename("EOF", "adoEOF")
並且要在電腦註冊32位的msado15.dll。我的win7下沒有註冊成功,我後來用的XP(XP系統已經註冊了不用自己註冊)

2. 在CxxxApp.cpp的InitInstance()函數中添加數據庫連接代碼,如下。

AfxEnableControlContainer();
    ::CoInitialize(NULL);AfxOleInit();
    HRESULT hr;
    
try { hr = m_pCon.CreateInstance("ADODB.Connection");//創建連接。若電腦沒註冊成功,則連接就會出錯,hr=-2147221164 if(SUCCEEDED(hr)) { m_pCon->CommandTimeout = 3; //連接延遲設置為3秒 hr = m_pCon->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=restaurant.mdb","","",adModeUnknown);//
連接數據庫。此處可能出錯,因為mdb文件不兼容(Access2013建的mdb要另存為2000..版本,再在XP上使用)。 } else { _com_error e(hr); AfxMessageBox(e.ErrorMessage());//hr=-2147221164 沒有註冊類 } } catch(_com_error e) { CString temp; temp.Format(
"連接數據庫錯誤信息:%s,%s",e.ErrorMessage(),e.Description()); ::MessageBox(NULL,temp,"提示信息",NULL); return FALSE; }

VC6.0中用ado連接數據庫出錯