sqlite3更新数据库问题 SQL执行成功但数据库数据不改变

Laber1314 2014-09-05 11:30:18
数据库打开 执行SQL一切正常 但是就是数据库的字段不更新 擦了!找了好久,求大神们看看!!!

if ([self openDB]) {

//char *errormsg;
sqlite3_stmt *statement;//这相当一个容器,放转化OK的sql语句
NSString *updateSql = [NSString stringWithFormat:@"UPDATE Character SET CH_IsLook = 1 WHERE id = %i",studyId];
const char *sql = [updateSql UTF8String];
//sqlite3_exec(_database, "BEGIN TRANSACTION", NULL, NULL, &errormsg);
int success = sqlite3_prepare_v2(_database, sql, -1, &statement, NULL);

if(success != SQLITE_OK){

MyLog(@"更新数据库错误");
sqlite3_close(_database);
return NO;
}
//sqlite3_bind_int(statement, 1, studyId);
//执行SQL语句。这里是更新数据库
success = sqlite3_step(statement);

//sqlite3_exec(_database, "COMMIT", NULL, NULL, &errormsg);

//如果执行失败
if (success == SQLITE_ERROR) {
NSLog(@"Error: 更新数据库错误");
//关闭数据库
sqlite3_close(_database);
return NO;
}
//释放statement
sqlite3_finalize(statement);
//执行成功后依然要关闭数据库
sqlite3_close(_database);
return YES;
}

打印出的SQL在数据库执行时可以的,是不是上面调用执行更新额方法不对???
2014-09-05 11:27:40.903[7836:60b] 0
(lldb) po sql
"UPDATE Character SET CH_IsLook = 1 WHERE id = 1"

返回的执行码是 101 我对了一下 是说SQL执行成功了啊
...全文
2959 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzm239212 2016-05-05
  • 打赏
  • 举报
回复
这个问题我遇到过,我是因为在某种情况下数据库未提交造成了sqlite 数据库被锁定,无法进行更新数据, 解决方法是:通过sqlite相关软件手动提交下就好了。,当然程序也要完善好 到底是Commit 还是Rollback;
szuzsq 2015-10-05
  • 打赏
  • 举报
回复
鄙视下楼主,有求于人时就大神大神.. 解决了,就不能详细说说你是什么问题,怎么解决的么? 后面那么多同志遇上同样问题.. 我也遇上一次差不多相同的.. 说出来给大家看看.. 回复于: 2015-10-05 17:51:27 已解决. 是我的逻辑有问题. 我每次初始化时,都调一下那些create table, create unique index语句.以为没问题. 其实不行的.已存在时,又create一次,数据库的insert,update就会出现各种sb问题.. 改成判断是否存在... C/C++ code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 --个人信息: --用户ID,账号,密码,昵称,头像,总局数,胜利,击杀,死亡,金币,钻石,VIP,等级,经验,升级经验(本地),已完成故事,最后上线日期. create table if not exists personal( user_id integer primary key autoincrement, type int not null, user_name char(100) unique not null, password char(200), nick_name char(100), image blob(204800), round int, win int, kill int, death int, coin int, diamond int, vip int, level int, experience int, finished_story int, last_online_date int );
BraveRu 2015-05-12
  • 打赏
  • 举报
回复
求解啊,我也遇到同样的问题。。。
nbhhcty 2015-03-27
  • 打赏
  • 举报
回复
楼主怎么解决的?遇到同样的问题,求解
qq_18397011 2014-09-17
  • 打赏
  • 举报
回复
楼主怎么解决的
Laber1314 2014-09-15
  • 打赏
  • 举报
回复
引用 3 楼 zhanglei5415 的回复:
能说一下,是哪个地方的问题吗? 是因为表名character 为sql 保留字的原因吗? 求解释
UPDATE [Character] SET CH_IsLook = 1 WHERE id = 1
是数据库的原因
Laber1314 2014-09-10
  • 打赏
  • 举报
回复
已解决!!!!!!!
ReyZhang 2014-09-10
  • 打赏
  • 举报
回复
能说一下,是哪个地方的问题吗? 是因为表名character 为sql 保留字的原因吗? 求解释
UPDATE [Character] SET CH_IsLook = 1 WHERE id = 1
Bannings 2014-09-10
  • 打赏
  • 举报
回复
求分

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧