IM項目-數(shù)據(jù)庫的封裝
因為在項目中可能出現(xiàn)垮系統(tǒng)的數(shù)據(jù)庫操作~所以數(shù)據(jù)庫的連接必須使用api,
為方便起見,我把項目中經(jīng)常用到的功能簡單的封裝兩個類,這樣的形式源于odbc的模型?
CDB? 用來創(chuàng)建管理連接,并生成查詢結(jié)果;
CRS保存結(jié)果集,并提供查詢共能
主要功能函數(shù)如下
CDB(char* uid, char* pwd, char* db, char* host="127.0.0.1", int port=3306);
?CRS Execute(char* strsql);
?int ExecuteNon(char* strsql);
?
?CRS();
?int GetCount(void);
?//獲取操作數(shù)據(jù)操作
?int GetInt(int index);
?int GetInt(char* strFieldName);
?int GetInt(string strFieldName);
?string GetString(int index);
?string GetString(char* strFieldName);
?string GetString(string strFieldName);
?//結(jié)果集指針操作
?void MoveNext(void);
?void MoveTo(int rownumber);
?void MoveFirst(void);
?void MoveLast(void);
?bool IsEOF(void);
?bool IsBOF(void);
?void Close(void);
為了保證通用性,數(shù)據(jù)的保存使用vector,原本想要使用map來保存的,但是因為使用map時,數(shù)據(jù)的鍵依然還是一個int型的索引,并不會帶來性能或者是操作性的優(yōu)化,所以最終還是放棄了。
這一版本,個人認(rèn)為功能很弱,操作性也不是很好,但是由于項目要求的比較急,也就將就一下吧~~以后再充實。
在涉及字符串的操作時~我認(rèn)為將char*轉(zhuǎn)換成?string不失為一個不錯的選擇,string提供了良好的操作性,在需要轉(zhuǎn)換成char*直接調(diào)用功能函數(shù)c_str()即可。很大程度的降低了代碼的復(fù)雜度





