2012-07-19 17 views
0

我能夠成功創建和訪問我的數據庫。但是,當我稍後需要更改屬性類型時,我修改了項目的文件夾數據庫,然後將新數據庫添加到Xcode。當我現在運行我的應用程序時(雖然我已經從模擬器中刪除了應用程序的目錄),但我仍然使用舊的數據庫!SQLite3表更新沒有反映在模擬器/用戶文件夾中

我甚至嘗試以編程方式更改表如下:

NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"TTSData.sql"]; 
success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error]; 
// 
sqlite3_stmt *statement; 
if(sqlite3_open([defaultDBPath UTF8String], &database) == SQLITE_OK) 
{ 
    NSString *updateSQL = [NSString stringWithFormat: @"ALTER TABLE Patient ALTER COLUMN Result DOUBLE"]; 
    const char *update_stmt = [updateSQL UTF8String]; 
    sqlite3_prepare_v2(database, update_stmt, -1, &statement, NULL); 

    if(sqlite3_step(statement)==SQLITE_DONE) 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"Success" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];  
     [alert show]; 
     alert=nil; 
    } 
    else 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"Not Altered" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 
     alert=nil; 
    } 
    sqlite3_finalize(statement);  
    sqlite3_close(database); 
} 

但我仍然得到我的舊的數據庫。有沒有人知道我在這裏可能會做錯什麼?

+0

你不能以編程方式改變你的數據庫,因爲儘管把它複製到一個可寫的位置,你仍然'sqlite3_open([defaultDBPath UTF8String])'... – 2012-07-19 17:37:21

+0

@ H2CO3是的,我現在意識到這是愚蠢的我要做到這一點,但我很無奈我嘗試了一切,我仍然不知道是什麼問題。會發布我的創建數據庫的方法嗎? – 2012-07-19 17:51:01

+0

nope只是改變這個路徑,看看會發生什麼。 – 2012-07-19 17:53:08

回答

0

您不允許在資源中更改您的數據庫。 :(

相關問題