web-dev-qa-db-ja.com

列がnullの場合、SQLiteCursorは何をしますか?

SQLiteクエリから返されたカーソルから整数を取得したいのですが、整数がnullである可能性があることはわかっています。残念ながら、これを確認できるCursorメソッドが見つかりません。

コードは

mModifiedDate = cursor.getInt(cursor.getColumnIndex(MODIFIED_DATE));

Null値の可能性があると思いますが、これは実際にはさまざまな理由で望ましいものです。このフィールドは2番目のテーブルが変更された時刻を示し、最初のテーブルは2番目のテーブルよりも先に入力できます。残念ながら、Cursorのドキュメントには、例外がスローされるか、エラー値が返されるか、またはその他の動作が実装に任されていると記載されており、SQLiteCursorのドキュメントには何も記載されていません。

フィールドがnullの場合、このコードは何をしますか? getInt()を呼び出す前にこれを確認する方法はありますか?

32
Andrew Wyld

isNull()-メソッドがあります。事前に使用して、null値を検出してください。覚えておいてください:ブール値を返すメソッドがisX()ではなくgetX()と名付けられることはよくあります。これは混乱の元になる可能性があります:)

55
pgsandstrom

私の経験から、それは0を返します。0が可能な答えでない場合は、0をチェックするだけです。それが可能な答えである場合は、pgsandstromが提案したように行う必要があります。

6
PearsonArtPhoto