2013-11-14 56 views
0

我有這樣一個Android的SQLite表定義:如何處理空整型列在SQLite數據庫

create table MyTable(..., myDate integer, ...); 

在我的代碼後來我查詢該表通過遊標檢索MyDate中值:

long dateInstant = cursor.getLong(cursor.getColumnIndexOrThrow("myDate")); 

但是,我想知道這是否是最好的方法。如果該值未設置(即數據庫爲空),則上述方法返回0,這也恰好是一個有效值。我需要區分空值的有效值。此外,從的Javadoc getLong

結果和是否當列值爲空此方法拋出異常,列類型是不是一個整數類型,或者整數值的範圍之外[長。 MIN_VALUE,Long.MAX_VALUE]是實現定義的。

這似乎暗示,如果我讀這正確的,即在未來的某個時候出貨的Android SQLite的實現可以選擇拋出一個異常,而不是返回0,我整個尋找一個一致的解決方案Android版本。

總之,我怎樣才能從穩健的方式,讓我有效值和空區分列處理整數數據的檢索?

回答

4

你可以做

long dateInstant = 0; // some value to represent null 
if (!cursor.isNull (colIndex)) 
    dateInstance = cursor.getLong (colIndex); 
+0

完美,感謝@Peri哈特曼。正是我在找的東西。 –