2012-04-14 275 views
0

我想從一個表中取出數據並將其移動到另一個表。首先,我從db_data數據庫的Items表中選擇所有記錄。然後,對於該表中的每條記錄,都應該將其插入到db_information數據庫中的Items表中。我只能將一條記錄寫入db_information數據庫的我的Items表中。我在db_data數據庫的Items表中有8條記錄。那爲什麼不插入我所有的記錄?插入到另一個數據庫只插入1條記錄

strSQL = @"SELECT GID FROM Items"; 
chrStmt = [strSQL UTF8String]; 
if(sqlite3_prepare_v2(db_data, chrStmt, -1, &cmpStmt, NULL) == SQLITE_OK){ 
    while(sqlite3_step(cmpStmt) == SQLITE_ROW){ 
     char *val = (char *)sqlite3_column_text(cmpStmt, 0); 
     NSString *strVal = [NSString stringWithUTF8String:val]; 
     strSQL = [NSString stringWithFormat:@"INSERT INTO Items (GID) VALUES ('%@')", strVal]; 
     chrStmt = [strSQL UTF8String]; 
     if(sqlite3_prepare_v2(db_information, chrStmt, -1, &cmpStmt, NULL) == SQLITE_OK){ 
      sqlite3_step(cmpStmt); 
     } 
    } 
} 

回答

1

我想,也許你錯誤地重用你的變量strSQLchrStmt,尤其是cmpStmt。這既用於while環路條件和主體。

嘗試對其他數據庫使用單獨的變量。