2012-09-04 158 views
-1

我在Xcode中遇到了一個問題:我嘗試了很多個星期來將數據添加到sqlite數據庫中,並且我在Google上搜索了很多結果,但沒有一個可以提供完整且清晰的教程,其中大多數正在使用.db但不是sqlite,我懷疑sqlite是無法插入或更新,只能讀取數據,或者是否有任何其他方式來做到這一點?SQLite是否能夠更新或插入

如果您有任何問題,請在答案中附上教程鏈接。謝謝

回答

1

我懷疑SQLite是無法插入或更新,只可以讀取數據

當然你也可以SQLite中插入數據。這是一個與其他應用程序一樣的數據庫,只是稍微輕鬆一點,並且與應用程序嵌入在同一個進程中,而不是像通常情況下那樣嵌入一個不同的進程(這意味着SQLite無法應答多個客戶端,而且您除了應用程序之外,不需要在計算機上安裝任何東西)。

這裏的INSERT文檔:http://www.sqlite.org/lang_insert.html

這裏還有很多其他中教程:http://www.techotopia.com/index.php/An_Example_SQLite_based_iPhone_Application

(其實我只是用Google搜索「sqlite的Xcode中插入」,我以前不知道這個教程)

+0

我發現,真正與插入和更新工作教程相當數量,且大多都在.db的格式,當我把我的編碼它與.sqlite工作,它只是不工作..我現在對iPhone編程非常沮喪... Android給我更好的編程經驗,我比較它... – Sunny

+0

也許有一個混淆:與SQLite引擎,你可以打開「.db」文件。這只是文件的名稱。 –

+0

@Sunny可能你的問題是你試圖寫入包中的只讀數據庫。將數據庫複製到您的應用程序的文檔目錄並對其執行插入/更新操作。 –

0

Sunny已經兩天了,我正在努力研究如何將數據插入到iOS上的sqlite。你應該做的第一件事是告訴SQLite保存數據的位置。默認情況下,如果你在你的手機上運行你的應用程序,它會把sqlite文件放在一個只讀的根目錄下。要解決它,你應該這樣做:

-(NSString *)GetDocumentDirectory{ 
    fileMgr = [NSFileManager defaultManager]; 
    homeDir = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; 
    return homeDir; 
} 

這fileMgr是NSFileManager和HOMEDIR是NSString未來,當你想插入YOUT數據,第一ü應該給烏爾SQLite的根到它,這是第一行,並檢查如果sqlite3_open並開始插入您的數據:

-(void)InsertRecords:(NSMutableString *)myData{ 
NSString *dbPath = [self.GetDocumentDirectory stringByAppendingPathComponent:@"YOUR SQLITE FILE NAME.sqlite"]; 
    const char *dbpath = [dbPath UTF8String]; 
    sqlite3 *contactDB; 
    sqlite3_stmt *statement; 

    if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK) 
    { 
     NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO tableName (tableColumn) VALUES (\"%@\")", myData]; 
const char *insert_stmt = [insertSQL UTF8String]; 

     sqlite3_prepare_v2(contactDB, insert_stmt, -1, &statement, NULL); 
     if (sqlite3_step(statement) == SQLITE_DONE) 
     { 
      sqlite3_bind_text(statement, 1, [myData UTF8String], -1, SQLITE_TRANSIENT); 
} 
else { 
      NSLog(@"error"); 
} 
     sqlite3_finalize(statement); 
     sqlite3_close(contactDB); 
    } 
} 

希望它能幫助:)

相關問題