我使用的是火狐sqlite管理器來幫助我構建一個iPhone應用程序。我在其中包含一個UPDATE查詢,它在iPhone模擬器中完美工作。但是,當我從真實機器(iPhone)運行時失敗。沒有錯誤,它只是不更新數據庫。更新查詢只適用於模擬器
我想到的兩個可能的原因: 1)它更新的數據庫不是一個在模擬器 2)我讀db是不是更新
有沒有人有類似經歷的人嗎?
代碼如下:
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *dbPath = [[[NSBundle mainBundle] resourcePath ]stringByAppendingPathComponent:@"Exercises.sqlite"];
BOOL success = [fileMgr fileExistsAtPath:dbPath];
if(!success)
{
NSLog(@"Cannot locate database file '%@'.", dbPath);
}
if(!(sqlite3_open([dbPath UTF8String], &db) == SQLITE_OK))
{
NSLog(@"An error has occured.");
}
NSString *ranID = [@"UPDATE Status SET money = " stringByAppendingFormat:@"%d", money + 100];
const char *sql2 = [ranID UTF8String];
sqlite3_stmt *sqlStatement2;
if(sqlite3_prepare(db, sql2, -1, &sqlStatement2, NULL) != SQLITE_OK)
{
NSLog(@"Problem with prepare statement 2");
}
if (sqlite3_step(sqlStatement2)==SQLITE_ROW)
NSLog(@"succeed");
在此先感謝。
感謝您的快速響應。 Documents dir的含義是什麼以及如何複製數據庫? – xcoder
@xcoder檢查更新回答 –
它工作的很棒!非常感謝你的幫助!! – xcoder