Идентификатор UUID в Мапбейсике
- ginpetr
- Завсегдатай
- Сообщения: 374
- Зарегистрирован: 21 июн 2011, 12:07
- Репутация: 139
- Откуда: Орск
- Контактная информация:
Идентификатор UUID в Мапбейсике
Здравствуйте!
Посредством Мапбейсика нужно записать создаваемому объекту в атрибут идентификатор UUID. Как я понял нужно вызывать функцию UuidCreate из Windows. Ввиду ограниченности познаний в программировании, не могу сообразить, как её туда приделать.
Посредством Мапбейсика нужно записать создаваемому объекту в атрибут идентификатор UUID. Как я понял нужно вызывать функцию UuidCreate из Windows. Ввиду ограниченности познаний в программировании, не могу сообразить, как её туда приделать.
-
- Гуру
- Сообщения: 5278
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1014
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Идентификатор UUID в Мапбейсике
Когда нет желания лазить во всякие внутрисистемные вызовы и пр. с UUID поступают самым естественным образом - генерят миллион(-ы) записей и берут из созданного массива столько, сколько нужно, помечая выбывшие, что бы не взять их повторно.
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Идентификатор UUID в Мапбейсике
Аналогичную задачу, после всякого перебора вариантов с MapBasic и иным программированием, получилось решить самым простым способом - через OGR:
Код: Выделить всё
ogrinfo -so myTab.TAB -dialect SQLite -sql "UPDATE myTab SET GLOBALID=CreateUUID()"
-
- Завсегдатай
- Сообщения: 297
- Зарегистрирован: 03 июн 2015, 10:19
- Репутация: 72
Re: Идентификатор UUID в Мапбейсике
Boris, не подскажете, как нужно изменить приведённый Вами код, чтобы идентификатор UUID прописывался с фигурными скобками, а не без них? Пробовал добавлять uuid([format='WithBraces']) в разных вариациях, но, видимо, что-то не так с синтаксисом.
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Идентификатор UUID в Мапбейсике
Согласно SpatiaLite 5.0.1 SQL functions reference list раздел Generic SQL utility functions
Функция
Функция
параметров не имеет, так что для получения скобок необходимо использовать стандартный оператор конкатенации:CreateUUID CreateUUID( void ) : Text returns a Version 4 (random) UUID (Universally unique identifier).
Код: Выделить всё
ogrinfo -so myTab.csv -dialect SQLite -sql "UPDATE myTab SET GLOBALID='{' || CreateUUID() || '}'"
ID1,GLOBALID
"1",{7ad0bde8-d2a6-4c67-89f9-72f56443daa2}
"2",{1450f9db-df9a-415d-817c-92b6c6f7b547}
-
- Завсегдатай
- Сообщения: 297
- Зарегистрирован: 03 июн 2015, 10:19
- Репутация: 72
Re: Идентификатор UUID в Мапбейсике
Boris, спасибо - работает!
Кто сейчас на конференции
Сейчас этот форум просматривают: Amazon [Bot] и 2 гостя