Saya ingin membuat tabel dengan tipe kolom, Long
bukan Integer
. Apa itu mungkin?
Dari dokumen SQLite
INTEGER . Nilainya adalah bilangan bulat bertanda, disimpan dalam 1, 2, 3, 4, 6, atau 8 byte tergantung pada besarnya nilai.
Karena long
8 byte dan INTEGER
juga dapat menyimpan nilai 8 byte, Anda dapat menggunakan INTEGER
.
Buat kolom sebagai INTEGER
tipe:
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_A + "("
+ KEY + " INTEGER" + ")");
Letakkan long
nilai di INTEGER
kolom:
contentValues.put(KEY, object.getLongValue());
db.insert(TABLE_A, null, contentValues);
Penting: ambil nilai dari kursor sebagaiLONG
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A, null);
long value = cursor.getLong(0);
Saya tidak berpikir ada tipe panjang. Anda dapat menggunakan INTEGER (atau) Numerik. Berikut ini tautan dengan tipe data yang didukung http://www.sqlite.org/datatype3.html
Anda tinggal menentukan kolom dengan tipe Integer. SQLite menyetel panjang kolom menjadi 1,2,4,8 tergantung pada masukan Anda.
Link di atas menggambarkan 64 bit Integer atau Intinya panjang, lihat juga Apa perbedaan antara tipe data integer SQLite seperti int, integer, bigint, dll?
yang INTEGER dapat menyimpan lama tapi untuk mendapatkan panjang dari kursor harus melakukan seperti ini:
int type = cursor.getType(j);
String value = cursor.getString(j);
try {
int intValue = Integer.parseInt(value);
field.set(object, intValue);
} catch (NumberFormatException e) {
long longValue = Long.parseLong(value);
field.set(object, longValue);
}
saya menggunakan ini untuk menyimpan cap waktu di sqlite
int
, pastikan Anda menggunakan durasi panjang.