插入另一个数据库只插入1条记录

时间:2012-04-14 23:28:53

标签: objective-c sql sqlite

我正在尝试从一个表中获取数据并将其移动到另一个表。首先,我从db_data数据库的Items表中选择所有记录。然后,对于该表中的每个记录,它应将其插入db_information数据库的Items表中。我只在db_information数据库中将一条记录写入我的Items表中。我在db_data数据库的Items表中有8条记录。那么为什么不插入我的所有记录呢?

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 个答案:

答案 0 :(得分:1)

我认为您可能错误地重复使用变量strSQLchrStmt,尤其是cmpStmt。这在while循环条件和主体中都使用。

尝试为其他数据库使用单独的变量。