sqlite3.h再封裝 追求成真版ADO封裝效果

版本一:

          概念有兩個,第一是數據庫,再一個就是數據集。 數據庫的功能比較簡單,把CppSQLite3DB在包裝包裝就OK了,數據集對應數據庫中表的操作,即增刪查改功能就OK了。

          在數據集類的封裝(CppSQLite3Query)這塊坐着坐着感覺不爽了,原因在以下幾個接口:

//獲取數據
BOOL GetCollect(string strFieldName, string &sValue);
//添加數據到內存
BOOL PutCollect(string strFieldName, const string value);
//將內存數據格式化並插入到數據庫
BOOL Update();

           其實GetCollect()的功能很簡單,只是包裝GetFieldValue()即可。真正麻煩的是PutCollect(),她必須得到Update()的輔助(其實Update裏邊就是一個insert語句).Update()根據表的字段名稱組織一條sql語句,執行便進行了插入操作。

           其實上邊的功能用CppSQLite3Query都可以實現,並不用到CppSQLite3Table就可以搞定。OK要的效果是實現了,突然發現CppSQLite3Table中有好多現成的方法,這些方法用CppSQLite3Query實現就麻煩多了。

          下班了下班了就寫這麼一通,看來明天的週末又得小奮戰一把。

版本二:

           數據庫還是老樣子不搭理她,數據集操作上需要動個小手術了。

          方案一:抽象出來一個數據表類,負責維護表的信息; 同時數據集小改一把,不能將其等同於數據表(即只操作一個表的類),讓其可以起到連表查詢操作,不過這樣顛覆了成真版ADO的原始印象(淺層次的、確切的說是我們公司再封裝的用法)。

          方案二:將數據表的功能封裝到數據集類中,也就是體一個數據集對應於一張表這樣的操作;這樣可以兼容公司ADO版的封裝用法,但感覺怪怪的,也失去了多表查詢等操作。

結果:先試試方案一。

結論:雖說sqlite是小型桌面數據庫,但爲了使上層調用者(說白了就是自己用)方便,還是多下下功夫,也是不死菜鳥的必經之路呀!

發佈了36 篇原創文章 · 獲贊 16 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章