首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

ADO 封裝類資料庫開發實戰【第二版】(上)

     編輯:關於VC++

緣起與改進

承接先前發表的《使用 ADO 封裝類的資料庫程式開發實例》,作者根據網友回饋與自身經驗,重構了封裝類,功能更完整:涵蓋 ADO 元件大部分方法,並擴充常用功能——如檔案/圖片寫入資料庫、讀取點陣圖欄位、Variant 智慧型別轉換等。雖然 Command 類別測試尚未完備,但 Connection 與 Recordset 核心類別已在 Access、SQL Server、MySQL 等環境下通過測試(MySQL 不支援交易)。

測試環境與授權

  • 編譯通過:VC6 SP5 / VC7,Windows XP / 2000 / 2003
  • 資料庫測試:Access、SQL Server、MySQL
  • 授權:自由使用、修改、散佈;商業用途風險自負

核心類別速覽:CAdoConnection

建構與連線

CAdoConnection();                              // 建構函式
BOOL Open(LPCTSTR lpszConnect, long lOptions); // 通用連線
BOOL ConnectSQLServer(CString dbsrv, CString db, CString usr, CString pwd, long lOpt);
BOOL ConnectAccess(CString path, CString pwd, long lOpt);
BOOL OpenUDLFile(LPCTSTR strFile, long lOpt);  // 透過 .udl 檔連線

連線字串範例

// SQL Server
CString strConn = "Provider=SQLOLEDB.1;Persist Security Info=False;"
                  "Integrated Security=SSPI;Data Source=cz\\xyy;Initial Catalog=NoteBook;";
pAdoConnection.Open(strConn);
// 或簡化版
pAdoConnection.ConnectSQLServer("cz\\xyy", "NoteBook", "sa", "007");

// Access
CString strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\dbTest.mdb";
pAdoConnection.Open(strConn);
// 或簡化版
pAdoConnection.ConnectAccess("C:\\dbTest.mdb", "007");

常用方法與屬性

方法/屬性說明
Close()關閉連線、釋放資源
Execute(LPCTSTR sql, long opt)執行不需傳回記錄集的 SQL(如 DELETE、UPDATE)
Cancel()取消執行中操作
GetLastErrorText()取得最後錯誤訊息
IsOpen()檢查連線狀態
Set/GetConnectTimeOut()設定/取得連線逾時
GetProviderName()取得提供者名稱
GetVersion()取得 ADO 版本
GetState()傳回 adStateOpen/adStateClosed
Set/GetMode()存取模式(唯讀、讀寫、共享模式等)
OpenSchema(SchemaEnum)取得資料庫結構描述資訊(資料表、欄位、索引等)
BeginTrans() / CommitTrans() / RollbackTrans()交易控制,支援巢狀交易

Variant 型別轉換輔助函式(全域)

COleDateTime vartodate(const _variant_t&);
COleCurrency vartocy(const _variant_t&);
bool vartobool(const _variant_t&);
BYTE vartoby(const _variant_t&);
short vartoi(const _variant_t&);
long vartol(const _variant_t&);
double vartof(const _variant_t&);
CString vartostr(const _variant_t&);

實用技巧亮點

  • 記錄集導航:SetFilter、SetSort、Find、書籤——減少手寫 SQL。
  • XML 匯入/匯出:支援但中文顯示有限制。
  • DataGrid 控制項繫結:像 VB 一樣直接繫結記錄集,免寫程式碼即可編輯資料。

後續預告

下篇將詳細說明 CAdoRecordSet、CAdoCommand 類別完整介面與範例。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved