64-разрядное значение без знака в sqlite с привязками c - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь сохранить и получить беззнаковые 64-битные целочисленные значения в sqlite через привязки c.

например, 18446744073709551615 (один меньше 2 в степени 64) Мне кажется, мне удалось сохранить это значение вбаза данных.Когда я запускаю sqlite3 в командной строке и выбираю столбец, я возвращаюсь 1.84467440737096e + 19

Проблема, с которой я столкнулся, заключается в получении значения с использованием привязок c.Я звоню sqlite3_column_int64.Эта функция возвращает значение sqlite3_int64, которое подписано.Когда я вызываю функцию, она возвращает 9223372036854775807, что является максимальным размером 64-разрядного целого числа со знаком (от 1 до 2 в степени 63). Кажется, функции sqlite3_column_uint64 не существует.

Anyидеи?

1 Ответ

0 голосов
/ 27 сентября 2018

64-разрядные целые числа без знака не могут быть напрямую представлены ни одним из типов данных SQLite .

Их необходимо хранить как текст или как двоичный объект.Ни в том, ни в другом случае база данных не сможет выполнять вычисления на них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...