2012-04-14 13 views
0

あるテーブルからデータを取り出し、別のテーブルに移動しようとしています。最初に、db_dataデータベースのItemsテーブルからすべてのレコードを選択します。次に、そのテーブルにあるレコードごとに、db_informationデータベースのItemsテーブルにそれを挿入する必要があります。 db_informationデータベースのItemsテーブルに1つのレコードしか書き込まれません。私は、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

私は多分あなたが誤ってchrStmtstrSQLあなたの変数を再利用し、特にcmpStmtされていると思います。これは、両方ともループ状態と本体のwhileで使用されます。

他のデータベースに別の変数を使用してみてください。

関連する問題