0
我不能为我的生活看到它可能是什么?任何建议?谢谢SQLite更新语句执行时没有错误,但表格行未更新?
(void)setRegId: (NSInteger) _regId
{
NSInteger r_id = _regId;
NSInteger row = 1;
ret = sqlite3_open(dbName, &database);
if (ret != SQLITE_OK)
{
printf("Error opening the db: %s\n", sqlite3_errmsg(database));
sqlite3_close(database);
return;
}
sqlite3_stmt *compiledStatement = nil;
if (compiledStatement == nil) {
const char *sql = "UPDATE RegDB Set id = ? Where rowindex = ?";
if (sqlite3_prepare_v2(database, sql, -1, &compiledStatement, NULL) != SQLITE_OK)
{
NSLog(@"Error: failed to prepare compiledStatement with message '%s'.",sqlite3_errmsg(database));
return;
}
}
sqlite3_bind_int(compiledStatement, 1, r_id);
sqlite3_bind_int(compiledStatement, 2, row);
int success = sqlite3_step(compiledStatement);
if (success == SQLITE_ERROR){
NSLog(@"Error: failed to update compiledStatement with message '%s'.", sqlite3_errmsg(database));
}
sqlite3_finalize(compiledStatement);
if(sqlite3_close(database) != SQLITE_OK)
{
NSLog(@"Error: failed to closed DB with message '%s'.",sqlite3_errmsg(database));
}
}
您是在模拟器还是在设备上进行调试,是否有可能保存更新,但在下一个版本上覆盖.db文件? – meggar
即时在设备上。我认为这接近问题,因为相同的代码在单独的项目中工作正常。我在应用程序在设备上运行时多次运行update方法,当我读取数据库的内容时,它们始终是Db中设置的默认值。感谢您的建议。 – null