2011-08-31 102 views
1

我想在我的支持文件夾導入數據庫,並連接使用到DB:iphone sqlite的問題

NSString *sqliteDb = [[NSBundle mainBundle] pathForResource:@」person」 ofType:@」sqlite」]; 
if(sqlite3_open([sqliteDb UTF8String], & database)!=SQLITE_OK) 

我試着將通過代碼得到了插入的值,但是當我退出程序,並檢查數據庫,價值觀是不存在。我不知道這裏出了什麼問題。

+0

您是否已將源數據庫與應用程序相關聯? –

+0

是啊..我重視.. –

+0

不知道在IOS sqllite,但我想你忘了提交更改到數據庫 http://www.techotopia.com/index.php/An_Example_SQLite_based_iOS_4_iPhone_Application#Implementing_the_Code_to_Save_Data_to_the_SQLite_Database – Seega

回答

1

好的。現在將該數據庫複製到任何將作爲應用程序數據存儲的本地位置。下面給出的代碼也會這樣做。

NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); 
    NSString *docDir = [docPaths objectAtIndex:0]; 
    NSString *dbPath = [[docDir stringByAppendingPathComponent:@"person.rsd"] retain];  
    NSFileManager *fm = [NSFileManager defaultManager]; 
    BOOL success = [fm fileExistsAtPath:dbPath]; 
    if(success) return; 
    NSString *dbPathFromApp=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent :@"person.rsd"]; 
    [fm copyItemAtPath:dbPathFromApp toPath:dbPath error:nil]; 

之後,執行您的查詢,您將在應用程序模擬器文件夾中獲取插入的數據。

+0

謝謝...現在工作!找到確切的問題.. –

0

首先將您的person.sqlite數據庫複製到應用程序的文檔目錄中,然後打開該數據庫進行操作。

1

包中的文件是隻讀的。你不能編輯它們。您需要將該數據庫複製到應用程序的緩存,文檔或臨時目錄以執行操作。