版本一:
概念有兩個,第一是數據庫,再一個就是數據集。 數據庫的功能比較簡單,把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是小型桌面數據庫,但爲了使上層調用者(說白了就是自己用)方便,還是多下下功夫,也是不死菜鳥的必經之路呀!