sqlite3更新数据库问题 SQL执行成功但数据库数据不改变
2016-12-29 14:33
288 查看
数据库打开 执行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执行成功了啊
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执行成功了啊
相关文章推荐
- 安卓开发SQlite使用执行SQL语句一些简单的处理——1.创建数据库,表和添加数据
- sql保存数据之提示保存成功数据库无数据问题
- mybatis执行sql检索不到数据,在数据库能成功检索到
- 用Sql解决数据库并发更新问题
- 执行SQL语句时出现问题操作必须使用一个可更新的查询错误的解决方法
- 使用存储过程更新数据库!成功了但是返回值为 -1 的变态问题的解决办法!
- Linq to Sql 更新数据时容易忽略的问题
- hibernate 更新 update执行后 数据库改变后,立刻回到原来的样子 好像回滚一样
- VC中向数据库插数据,执行“UPDATE()”时,出现异常:无法更新,当前被锁定
- 关于AJAX访问数据库不能及时获得更新数据的问题
- 使用LINQ to SQL更新数据库(上):问题重重
- C#:30行数据插入到数据库中的效率测试-一行行执行、构造SQL一次执行、SqlBulkCopy
- Castle ActiveRecord 在查询时会自行更新数据库数据的问题 (ZT)
- SQL 数据改变时自动执行类中的方法
- C# 数据库sql中用参数的方法来执行UPDATE命令,实现更新dataTime类型
- [SQL][转贴]数据库表数据复制相关问题
- 用SqlDataAdapter更新数据库问题
- Linq to Sql 更新数据时容易忽略的问题
- 精通数据库SQL——数据的更新和删除
- gridview的更新和取消的问题。网上有人问我说数据在update后还保持编辑的状态。怎么改变起状态。