1
iPhoneのアプリケーションに複数のテーブルを挿入する必要があります。このデータにはテーブル名があります。SQliteの別のテーブルに挿入
これは私がやろうとしたものである。
NSString *statement = @"insert into ? values (?, ?, 0)";
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, [statement UTF8String], -1, &compiledStatement, NULL) == SQLITE_OK)
{
for(UpdateItems *item in updateData){
sqlite3_bind_text( compiledStatement, 1, [item.table UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text( compiledStatement, 2, [item.code UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text( compiledStatement, 3, [item.data UTF8String], -1, SQLITE_TRANSIENT);
while(YES){
NSInteger result = sqlite3_step(compiledStatement);
if(result == SQLITE_DONE){
break;
}
else if(result != SQLITE_BUSY){
break;
}
}
sqlite3_reset(compiledStatement);
}
} else
printf("db error: %s\n", sqlite3_errmsg(database));
sqlite3_finalize(compiledStatement);
sqlite3_close(database);
上記のスクリプトを実行している私はエラーを取得する:いいえ、そのようなテーブル:?これは正常ですが、sqlite3_prepare_v2ステートメントのようにデータはまだバインドされていないため、SQLiteはテーブルを認識しません。
ループの内側に穴sqlite3_prepare_v2ブロックを移動し、stringWithFormatを使用します。最初の疑問符をテーブル名で変更します。これを準備した後、他の解決方法がありますか?
ありがとうございます。マッピングの考え方は良いです。しかし、私は結局のところ最も簡単な解決法を使用しました。 – CristiC