我正在尝试从一个表中获取数据并将其移动到另一个表。首先,我从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);
}
}
}
答案 0 :(得分:1)
我认为您可能错误地重复使用变量strSQL
,chrStmt
,尤其是cmpStmt
。这在while
循环条件和主体中都使用。
尝试为其他数据库使用单独的变量。