カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

SQLite データ更新

int android.database.sqlite.SQLiteDatabase.update
update(String table, ContentValues values, String whereClause, String[] whereArgs)
ContentValues cv = new ContentValues();
cv.put("key", "value");
db.update("table", cv, "_id = ?", new String[] { "id" });
1,968 views

SQLite データ型

NULL NULL
INTEGER 整数型
REAL 浮動小数点
TEXT 文字列
BLOB バイナリデータ

2,043 views

Honeycomb Cursor関連のエラー

SQLiteデータベースを扱うアプリをAndroid3.2搭載の端末に入れていてエラーが発生した。
詳細は省略しますが、以下のようなエラーが出ます。
RuntimeException: Unable to resume activity
IllegalStateException: trying to requery an already closed cursor

クエリを実行しようとしたが、カーソルが閉じているとエラーが出ています。
どうやらカーソルマネージャー機能がなくなったよう。

というわけで、マネージャーを使うのをやめ、クローズ処理をアクティビティのonDestroy()に集約。
これでエラーは解消された。

Android2.2、2.3では正常に動作するので、バージョン違いの互換性による問題のようです。
代わりのメソッドが用意されている場合もあるので、Reflectクラスを利用すれば互換性を持たせることは可能なようです。

参考?
http://d.hatena.ne.jp/ukiki999/20100524/p1

1,884 views