0

我正在尝试从一个表中获取数据并将其移动到另一个表中。首先,我从 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);
        }
    }
}
4

1 回答 1

1

我认为也许你错误地重用了你的变量strSQLchrStmt尤其是cmpStmt。这在while循环条件和主体中都使用。

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

于 2012-04-14T23:54:42.580 回答