SQLite, используя ContentValues ​​с типом данных BigInteger? - PullRequest
2 голосов
/ 27 июня 2011

Итак, я пытаюсь сохранить некоторые данные на SQLite дБ в Android,

Структура таблицы примерно такая:

e BIGINT NOT NULL, n BIGINT NOT NULL, phoneNo TEXT NOT NULL PRIMARY KEY

и я пытаюсь сделать это, используя что-то вроде этого:

BigInteger e, n;
String phoneNo;
ContentValues values= new ContentValues();
initialValues.put(KEY_PUB_E, e);
initialValues.put(KEY_PUB_N, n);
initialValues.put(KEY_PUB_PHONE, phoneNo);
mDb.insert(DATABASE_TABLE, null, values);

Но ContentValues ​​не принимает тип данных BigInteger, так что я думаю об использовании int или long, но приведет ли это к изменению данных? и SQLite поддерживает BIGINT, верно?

Для меня есть еще одна опция, которая использует метод execSQL, но позже есть часть, где мне нужно задействовать много столбцов и сделать это слишком сложным ...

Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 27 июня 2011

цитата из ЗДЕСЬ : INTEGER.Значением является целое число со знаком, сохраняемое в 1, 2, 3, 4, 6 или 8 байтах в зависимости от величины значения.

Вы можете использовать тип данных long или * longValue() метод Бигинта.

0 голосов
/ 29 июня 2011

Спасибо за помощь, woodshy,

самое простое решение, которое я собираюсь найти, это сохранить значение в виде текста и преобразовать его обратно в BigInteger, когда я его получу.не должно быть проблемой, так как это не делается слишком часто во время выполнения приложения ...

что вы думаете по этому поводу?

...