我想对sqlite操作进行封装。
当我输入id(主键)和value后,判断table中是否已存在该id,如果存在,则进行update,如果不存在,则进行insert。该如何实现?
先select一下啊。。。
如果我select的id是不存在的,执行sqlite3_exec后,返回值是什么?
你找个不存在id的试试
明白了,是我select语句写的有问题。
现在换了个脑残写法,问题暂时解决了,但是还有问题我不太明白。
string cmd = "select * from table where id = " + Value(key).asString();
checkResult = sqlite3_exec(pDB, cmd.c_str() , checkData , NULL, &errMsg);
int checkData(void* para,int n_column,char** column_value,char** column_name)
{
int result = 0;
if ((column_value != NULL) && (column_value != NULL)) {
result = 1;
}
return result;
}
为什么table 中当该id存在内容时,log输出checkResult为4?返回值不应该是1吗?:901:
http://www.blogjava.net/xylz/archive/2012/09/25/388519.html
通常情况下callback在select操作中会使用到,尤其是处理每一行记录数。返回的结果每一行记录都会调用下“回调函数”。 如果回调函数返回了非0,那么sqlite3_exec将返回SQLITE_ABORT,并且之后的回调函数也不会执行,同时未执行的子查询也不会继续执行。
下次要自己查哟
感谢版主:801: