Содержание
Хранение и выборка UUID из базы данных
UUID можно хранить в базы данных в виде строки. Но база данных в 3 раза быстрее работает с UUID в двоичном формате.
Для хранения UUID в базе данных нужно использовать в поле с типом BLOB мин=16 макс=16. Надо обязательно указать минимальный и максимальный размер поля равный 16, иначе поиск будет производится очень медленно. Поле такого типа в базе данных MySQL имеет тип Binary(16).
Для преобразования UUID из строки в BLOB предназначена SQL-функция PackUUID.
Пример:
// Использование функций базы данных
Insert Into MyTable(uuid) Values(PackUUID('88db0c40-0a2e-102c-915a-e960228d5a1e'))
Select Id From MyTable Where uuid = PackUUID('88db0c40-0a2e-102c-915a-e960228d5a1e')
// Использование функций платформы
(Insert Into MyTable(uuid) Values(:PackUUID('88db0c40-0a2e-102c-915a-e960228d5a1e')));
(Select Id From MyTable Where Uuid = :PackUUID('88db0c40-0a2e-102c-915a-e960228d5a1e'));
Blob := PackUUID('88db0c40-0a2e-102c-915a-e960228d5a1e');
(Select Id From MyTable Where Uuid = :Blob);
Для преобразования UUID из BLOB обратно в строку предназначена SQL-функция UnpackUUID.
Пример:// Использование функции UnpackUUID базы данных Select UnpackUUID(uuid) From MyTable // Использование функции UnpackUUID платформы Dataset1 := (Select Uuid From Table2); Foreach E In Dataset1 Do Warning(UnpackUUID(E.Guid));
SQL-функции PackUUID и UnpackUUID возможно работают медленне, чем функции платформы PackUUID, UnpackUUID.
справка