2011-10-13 9 views
30

SQLiteクエリから返されたCursorから整数を取得したいのですが、整数がnullである可能性があります。残念ながら、私はこれを確認することができます任意のカーソルメソッドを見つけることができません。列がnullの場合、SQLiteCursorは何を行いますか?

コードが

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

あろう私が可能ヌル値を期待し、これは様々な理由フィールドのために実際に望ましい第二テーブルが変更された時間、及び第一テーブル缶を指し2番目のものが入る前に設定されます。残念なことに、Cursorのドキュメントでは、例外がスローされるか、エラー値が返されるか、その他の動作が実装に残っているかどうか、SQLiteCursorのドキュメントでは何も言わないことが記載されています。

フィールドがnullの場合、このコードはどうなりますか? getInt()を呼び出す前にこれをチェックする方法はありますか?

答えて

53

isNull()の方法があります。あらかじめヌル値を検出する場合にのみ使用してください。覚えておいてください:getX()の代わりにisX()という名前のブール値を返すメソッドでは、かなり混乱の元になることがよくあります:)

+2

ああ、ありがとう!それは理にかなっている。 –

+0

ありがとう!アンドロイドの日付を読み込んで永続させるもう1つの良いスレッドが見つかりました[ここ](http://stackoverflow.com/questions/7363112/best-way-to-work-with-dates-in-android-sqlite/17891061#17891061 )。 – schnatterer

6

私の経験上、0を返すことはできません場合は、単に0を確認することができます。可能な答えがあれば、pgsandstromとして提案する必要があります。

+2

0は可能な答えだったので、より良い方法が必要でした。私は本当に@pgsandstromが提案したことをしました。 –

関連する問題