首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VC++ 連接 Access 資料庫:ADO 操作多張資料表基本流程

     編輯:程式設計綜合問答

核心觀念

程式連接的是 **資料庫(.mdb/.accdb)**,而非單一資料表。連接成功後,透過 SQL 指令操作其中的多張資料表。

基本步驟 (ADO)

  1. 建立 Access 資料庫與資料表(可用 Access 軟體或 SQL CREATE TABLE)。
  2. 連接字串範例:
CString connStr = _T("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Data\\MyDB.accdb;Persist Security Info=False;");
  1. 開啟連接:
_ConnectionPtr pConn;
pConn.CreateInstance(__uuidof(Connection));
pConn->Open(_bstr_t(connStr), "", "", adModeUnknown);
  1. 執行 SQL(查詢/新增/修改/刪除):

// 查詢
_RecordsetPtr pRs;
pRs.CreateInstance(__uuidof(Recordset));
pRs->Open(_bstr_t("SELECT * FROM Table1"), pConn.GetInterfacePtr(), adOpenStatic, adLockReadOnly, adCmdText);
while (!pRs->adoEOF) {
    _variant_t val = pRs->GetCollect("FieldName");
    // 處理資料
    pRs->MoveNext();
}
pRs->Close();

// 新增/修改/刪除
pConn->Execute(_bstr_t("INSERT INTO Table2 (Col1) VALUES ('Value')"), NULL, adCmdText);
  1. 關閉連接:pConn->Close();

操作多張表

  • 同一連接下,交換 SQL 指令即可存取不同表:SELECT * FROM TableA、UPDATE TableB SET ...。
  • 交易處理:pConn->BeginTrans(); ... pConn->CommitTrans(); / RollbackTrans();。

常見問題

  • 驅動程式版本:.accdb 需 ACE OLEDB 12.0+,.mdb 可用 Jet 4.0。
  • 路徑權限:確保程式對資料庫檔案有讀寫權限。
  • 錯誤處理:使用 _com_error 捕獲 ADO 例外。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved