【发布时间】:2011-02-16 08:44:17
【问题描述】:
我无法更新我的数据库:我连接到它,然后我使用此功能,但它必须执行但没有更新:
- (BOOL) updatePoint:(NSString *) word {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"master.sqlite"];
sqlite3_stmt *statement;
if (sqlite3_open([path UTF8String], &database) == SQLITE_OK) {
int newPoint = point + 1;
NSString *sql = [NSString stringWithFormat:@"UPDATE %@ SET Point='%d' WHERE Parola=?",
dictionaries1[[[word substringWithRange:NSMakeRange(0,1)] intValue]-1],newPoint];
if(sqlite3_prepare_v2(database, [sql UTF8String], -1, &statement, NULL)==SQLITE_OK)
sqlite3_bind_text(statement,1,[word UTF8String] ,-1, SQLITE_TRANSIENT);
sqlite3_step(statement);
sqlite3_finalize(statement);
//sqlite3_reset(statement);
sqlite3_close(database);
return YES;
} else
return NO;
}
怎么了?
【问题讨论】:
-
你怎么知道没有更新?
-
因为,我从数据库中提取点(即我想要更新的值),点是相同的,总是 2,而不是第一次 2,第二次 3,第三个 4..ecc..
-
我的意思是您是通过编程方式还是使用终端手动获得该值?
-
当你的 Xcode 项目中有 db 文件时,它会在安装过程中被复制到 bundle 中。当您在模拟器上安装应用程序时,通常会覆盖具有其资源的应用程序(因此您的更改可能会被丢弃)。尝试添加一些对外部文件的引用(例如根目录中的 /test.db)。
标签: iphone objective-c