1

Androidアプリに「MODIFIED」列を持つSQLiteテーブルがあります。基本的に、現在の行が最初に挿入または更新された日時 (日時) を格納します。

Android で SQLite DB の関数を使用update()すると、日時の値をContentValuesパラメーターに入れる方法がわかりません。

execSql()メソッドを使用する場合、 DATETIME()SQL 関数を使用して現在の時刻を取得し、「MODIFIED」列に設定できます。ただし、この関数には戻り値がありません。更新が成功したかどうかはわかりません。

何か提案がある人はいますか?

4

2 に答える 2

1

別のアプローチは、SQLite 自体を使用して「UPDATE」ごとに MODIFIED を自動的に更新する「TRIGGER」を作成することです。詳細については、こちらを参照してください。

于 2012-04-23T02:55:45.363 に答える
1

次のようなことをしなければなりません:

ContentValues values = new ContentValues();
values.put("modified", currentTime);
db.update("table", values, "_id = XXX", null);

_id = XXX行の更新に使用する条件に置き換えます。Update メソッドは、更新された行の数を返します。

また、DATETIME の代わりに整数を使用して (実際には sqlite http://www.sqlite.org/datatype3.htmlに存在しないため)、その列に型を指定してSystem.currentTimeMillis()として渡すこともできcurrentTimeます。

于 2012-04-23T02:15:01.533 に答える