データベースを操作するために、 、 などの代わりに メソッドrawQuery
とメソッドを使用しようとしています。次のコードで UPDATE を実行しようとしています。execSQL
.update
.insert
db.execSQL("UPDATE configuration " +
"SET number_fields = " + number_fields + ", "
+ "frequency = " + frequency + ", "
+ "ag = " + ag + ", "
+ "number_alarms = " + number_alarms + ", "
+ "failed_rapper = " + failed_rapper + ", "
+ "max_mv = " + max_mv + ", "
+ "max_nav = " + max_nav + " "
+ "WHERE serial_id = " + Integer.toString(id) + ";");
このアクションの後、更新が発生したことを示すログがあり、動作しているように見えますが、テーブルで選択ステートメントを実行しようとすると、次のエラーが返されます。
06-10 10:01:47.564: W/System.err(3815): android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
これで、SQLite Database Browser を使用して手動で挿入した Android のさまざまなデータに対して同じ SELECT を実行しましたが、正常に動作します。SQLite ブラウザでも同じ UPADTE を実行しましたが、そこで動作しました。したがって、問題は、Android で実行しているときに UPDATE コマンドが機能しないことです。
質問:execSQL()
メソッド内で UPDATE コマンドが機能しないのはなぜですか?