3. 主要使用接口
BOOL CDBDevList::Init(string sDBFile)
{
LOCK lck(m_Mtx);
m_sDBFile = sDBFile;
if (m_pDB != NULL){
sqlite3_close(m_pDB);
m_pDB = NULL;
}
//路径采用utf-8编码
int nRes = sqlite3_open(sDBFile.c_str(),&m_pDB);
if (nRes != sqlITE_OK)
{
TRACE("CDBDevList::Init 打开数据库失败!");
return FALSE;
}
return FALSE;
}
BOOL CDBDevList::DelInit()
{
LOCK lck(m_Mtx);
if (m_pDB != NULL){
sqlite3_close(m_pDB);
m_pDB = NULL;
TRACE("关闭数据库!\n");
}
return TRUE;
}
查
static int QueryResult(void *NotUsed,int argc,char **argv,char **azColName)
{
TRACE("\n");
for(int i = 0 ; i < argc ; i++)
{
TRACE("%s,",argv[i]);
}
TRACE("\n");
return 0;
}
BOOL CDBDevList::Query(string sLocalId)
{
if (m_pDB == NULL) {
TRACE("查。数据库未初始化!");
return FALSE;
}
TCHAR strsql[512] = {0};
try{
_stprintf_s(strsql,512,"select * from DevList where localId='%s';",sLocalId.c_str());
char* cErrMsg;
int nRes = sqlite3_exec(m_pDB,strsql,QueryResult,(void *)this,&cErrMsg);
if (nRes != sqlITE_OK)
{
if (cErrMsg) {
TRACE("查。%s\n",cErrMsg);
sqlite3_free(cErrMsg);
cErrMsg = NULL;
}
return FALSE;
}
return TRUE;
}
catch(...)
{
TRACE("查。捕获异常!\n");
}
return FALSE;
}