由於在開發酷Q機器人時需要用到SQLite,所以找到了easySQLite,這是一個簡單的SQLite封裝庫,使用起來比較方便,但是文件不夠詳細,所以在這裡做一些補充
easySQLite地址:https://code.google.com/archive/p/easysqlite/
由於需要用到SQLite,經過一番兜兜轉轉,看到了easySQLite,下載下來,還不錯,就是有些地方說明不夠詳細,以此做補充
開啟資料庫
使用時提示 "Database::open: unable to open database file",可能是因為fileName編碼不正確,因為此處要求ut8編碼,嘗試在前頭加上 u8,例如:db.open(u8"D:/中文資料夾名/test.db");
, 或對fileName進行轉碼
//gbk轉UTF-8
string GbkToUtf8(const std::string& strGbk)//傳入的strGbk是GBK編碼
{
//gbk轉unicode
int len = MultiByteToWideChar(CP_ACP, 0, strGbk.c_str(), -1, NULL, 0);
wchar_t *strUnicode = new wchar_t[len];
wmemset(strUnicode, 0, len);
MultiByteToWideChar(CP_ACP, 0, strGbk.c_str(), -1, strUnicode, len);
//unicode轉UTF-8
len = WideCharToMultiByte(CP_UTF8, 0, strUnicode, -1, NULL, 0, NULL, NULL);
char * strUtf8 = new char[len];
WideCharToMultiByte(CP_UTF8, 0, strUnicode, -1, strUtf8, len, NULL, NULL);
std::string strTemp(strUtf8);//此時的strTemp是UTF-8編碼
delete[]strUnicode;
delete[]strUtf8;
strUnicode = NULL;
strUtf8 = NULL;
return strTemp;
}
取欄位值
//load all records
tbPerson.open();
//list loaded records
for (int index = 0; index < tbPerson.recordCount(); index++){
if (Record* record = tbPerson.getRecord(index)) {
Value* value = record->getValue("value"); //取value欄位的值
Value* value2 = record->getKeyIdValue(); //取主鍵ID
}
}