win7 64 VC++ ado方式連接access 連接字符串


運行環境:win7 64

      vc++6.0

      office 2007  32位(access 2007)

我用的是ado方式連接access數據庫,(現在的Win7系統中安裝的一般都是32位的Office,因為微軟推薦使用32位的Office,兼容性更強,穩定性更好。access文件是.mdb(2003格式,會提示沒有jet訪問組件) .accdb(2007格式)),因此需要安裝AccessDatabaseEngine_X64.exe驅動,安裝時會提示先卸載office再安裝64位office,然后再安裝。可以使用"/passive"命令安裝;

操作如下:

  1. 打開命令行 輸入AccessDatabaseEngine_x64.exe /passive 安裝完成。
  2. 安裝完成后,查看注冊表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths,刪除mso.dll(一定做這一步,否則會出現Office Config配置問題,已啟動Office就會重新安裝Office

以上准備工作做完,可以開始編碼了以下列出關鍵代碼:

CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_bstr_t strConnect="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\mac.mdb;";

//特別注意這里的連接字符串或者用以下連接字符串(很容易出錯,這2個都是可以的,我這個上面浪費很多時間

/*

_bstr_t strConnect="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\mac.mdb;";

    //_bstr_t strConnect="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\mac.mdb;uid=;pwd=;";   

*/
pConn->Open(strConnect,"","", adModeUnknown);
pRst=pConn->Execute("select * from macAddress",NULL,adCmdText);

while(!pRst->adoEOF)
{
    //((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pRst->GetCollect("mac"));

printf( "%s \n", pRst->GetCollect("mac"));    
    pRst->MoveNext();
}
pRst->Close();
pConn->Close();

pRst.Release();
pConn.Release();
CoUninitialize();

提示[Microsoft ][ODBC 驅動程序管理器] 未發現數據源名稱並且未指定默認驅動程序,很有可能就是驅動已經安裝好,但是連接字符串是錯誤的(如access文件路徑)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM