自從上次在VCKBASE 在線雜志》第三十期刊登了“VC++中使用DB-Library編程(SQL Server)”一文之後,得到了很多朋友的支持和鼓勵,有很多朋友提出了寶貴建議,並指出了其中的不足和錯誤,最近利用業余時間,將原來提供的DBLibrary類重新改寫,這次是以動態庫(DLL)的方式實現的,在新版的DBLibrary中,有以下變動:
將原有的DBLibrary類細分為以下幾個類
CDBError——錯誤處理類,是所有類的父類
CDBSession——處理連接會話類
CDBStatement——處理用戶提交的SQL請求,與CDBSession有關聯
CDBTable——處理CDBStatement返回的結果集,主要適應有多次循環遍歷結果集的需求
CColumn——定義表列類
CBatchCopy——數據批量拷貝類(尚未完成)
CDBStoreProc——執行存儲過程,此類針對無結果集返回的存儲過程(尚未完成),
有結果集返回的存儲過程可以使用CDBStatement類的Open方法來完成
由原來的類轉為動態連接庫的方式(dblib.dll)
修改了原來錯誤處理類中有的錯誤信息無法捕捉,錯誤捕捉更完整
修改後的版本號改為 V2.0.1(Bata) ,可以使用getVerInfo()取得
修正了Version 1.0(測試版)處理結果集中的空值異常
目前支持的數據類型:
[char]
[varchar]
[nchar]
[int]
[bit]
[decimal]
[numeric]
[money]
[float]
[smallint]
[smallmoney]
[real]
[text]
[tinyint]
[datetime]
[nvarchar]
[smalldatetime],沒有列出的,暫不支持,以後將會進一步完善。本次設計采用了UML建模方法,也是最近剛學習的,請高手指點。以下是用例圖:
以下是類圖,如[圖一]:
以下是DBStatement的時序圖:
以下是DBTable的時序圖:
具體的實現,請看源程序。解包後有3個文件:
dblib.rar 是源程序文件;
createDemo.sql 是建庫腳本;
insertvalue.sql 是初始化表腳本;
修改相應數據庫文件存放路徑即可。程序已在win2000server+MS SQL Server2000 + vc++6.0上調式通過。
注:在使用之前,請安裝SQL Server的客戶端開發工具[使用自定義安裝並選擇"開發工具"下的"頭和庫"])。第一次使用的朋友,請參考 VCKBASE 在線雜志》第三十期 的“VC++中使用DB-Library編程(SQL Server)”的介紹。
因才學C++不久,很多東西還在摸索之中,UML也是剛學的,有很多都不懂,請高手指點。
本文配套源碼