一千萬個為什麽

搜索

Sqlite iPhone數據插入問題

嗨,我有一個函數,基本上嘗試插入從REST調用返回的一些數據。

- (void)syncLocalDatabase{
 NSString *file = [[NSBundle mainBundle] pathForResource:@"pickuplines" ofType:@"db"];
 NSMutableString *query = [[NSMutableString alloc] initWithFormat:@""];
 sqlite3 *database = NULL;
 char *errorMsg = NULL;
 if (sqlite3_open([file UTF8String], &database) == SQLITE_OK) {
  for(PickUpLine *pickupline in pickUpLines){
   [query appendFormat:@"INSERT INTO pickuplines VALUES(%d,%d,%d,'%@','YES')", pickupline.line_id, pickupline.thumbsUps, pickupline.thumbsDowns, [pickupline.line stringByReplacingOccurrencesOfString:@"'" withString:@"`"]];
   NSLog(query);
   int result = sqlite3_exec(database, [query UTF8String], NULL, NULL, &errorMsg);
   if (result!=SQLITE_OK) {
    printf("\n%s",errorMsg);
    sqlite3_free(errorMsg);
   }
   //sqlite3_step([query UTF8String]);
   [query setString:@""];
  }//end for
 }//end if
 [query release];
 sqlite3_close(database); }

一切看起來很好查詢字符串在日誌語句中也很好,但數據不會被插入。作為select函數的這個函數的對應部分效果很好。 這是對應部分

    - (void)loadLinesFromDatabase{

 NSString *file = [[NSBundle mainBundle] pathForResource:@"pickuplines" ofType:@"db"];
 sqlite3 *database = NULL;
 if (sqlite3_open([file UTF8String], &database) == SQLITE_OK) {
  sqlite3_exec(database, "SELECT * FROM pickuplines", MyCallback, linesFromDatabase, NULL);
 }
 sqlite3_close(database);
}

I have implemented callback & it works fine.

我對Sqlite有點新意,有人請指出我做錯了什麽。 感謝名單

最佳答案

您可以隨時使用Crystalminds的SQLiteDatabase:
http://www.crystalminds.nl/?p=1342

他們制作了一個非常易於使用的數據庫庫,因此難以解決代碼難題!我已經使用了一段時間了,我無法想象不得不這樣做!

轉載註明原文: Sqlite iPhone數據插入問題