2013-09-06 2 views

ответ

3

Там, кажется, не много на межсетях, что делает то, что вы ищете, так что я предполагаю, что вы хотите возможно, не самая умная вещь.

Все, что я мог бы найти действительно был:

How to store 128 bit values

[sqlite] 128-bit numbers

Все остальное, кажется, говорить о тексте вместо чисел


В соответствии с комментарием от Drew, то вторая ссылка теперь мертва. Тем не менее я нашел его в Вайбак машине:

Wayback machine version of: [sqlite] 128-bit numbers

Ключевые биты из этой дискуссии являются:

вт, 2005-05-03 17:52 -0400, Кристофер Petrilli писал :

Мне интересно, было ли доступно 128-битное число ? Причина, по которой я спрашиваю, заключается в том, что у меня есть приложение, которому необходимо сохранить IPv6-адреса, которые являются 128 бит. Прямо сейчас я храня их в 2 64-битных полях, но это явно усложняет запрос совсем немного.

Объявление поля как CLOB или TEXT и сохранение номеров таким образом. Вы можете сохранить любой размер, который вы хотите в столбце TEXT. Вы просто не можете сделать арифметику на них, если они больше 64 бит. Нужно ли вам сделать арифметику на ваших IPv6-адресах?

и

SQLite позволяет делать сравнения диапазона на BLOB. Он использует memcmp() для . До тех пор, пока вы вставляете свои данные в формат , который можно правильно сопоставить с помощью memcmp(), все должно быть хорошо.

0

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

Если вы хотите, чтобы преобразовать строку UUID в двоичную, используйте

uuid_t uuid; 
NSUUID *uuidString = [[[NSUUID alloc] initWithUUIDString:@"68753A44-4D6F-1226-9C60-0050E4C00067"] autorelease]; 
[uuidString getUUIDBytes:uuid]; 
Смежные вопросы