![]() |
|
|
![]()
|
|
| User |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 5.11.2004 Репутация: нет Всего: нет |
Наверное многим чатланам было бы интересно узнать что такое Guid и как с ним работать в Delphi. Я этим вопросом заинтересовался недавно, но литературы по нему так и не нашел. Предлогаю собрать сдесь небольшой анонс решений данной проблемы. Пишите!
Это действительно интересно многим! |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 2 Всего: 64 |
Вообще то этот вопрос стоило задать в ActiveX\COM\CORBA.
GUID - Global Unique IDentifier - Глобальный Уникальный Иеднтификатор В Дельфи с ним работать просто
Если нужно самому сгенерить его, то в IDE Дельфи это делается путем нажатия Ctrl+SHift+G, либо программно нужно вызвать функцию CoCreateGUID(Либо поискать на форуме - тут вроде была темка его ручной генерации -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Петрович |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
Совсем не обязательно. Дело в том, что GUID очень удобно для уникальной идентификации записей в БД. Например, в MS SQL-server'е есть даже специальный тип - uniqueidentifier.
А проблемы никакой и нет Как и сказал <Spawn>, просто используй функцию CreateGUID. Если нужно сгененрировать GUID на MS SQL-сервере, то испоьзуй функцию NEWID(). Вот пример как я "генерю" значение идентификатора для новых записей:
-------------------- Все знать невозможно, но хочется |
||||||
|
|||||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Последнее время использую их всё чаще и чаще... Очень удобно иметь 100% уникальную строку, практически везде - от баз данных, до уникального имени файла. Везде где надо гарантировать неповторяемость строки использую GUID. Например:
1) при автоматической рассылке email вставляю GUID в заголовок письма как его идентификатор, если клиент звонит с проблемой - по этому GUID я точно идентифицирую что за транзакция была где и когда. 2) Есть система в которой информация передаётся файлами от компа к другому - для уникальности имени использую GUID в качестве имени файла 3) Как ключи в таблице -чтоб не мучится с уникальностью, особенно если есть репликация данных 4) MD5 в результате тоже выдаёт 16 байт, как и GUID - широкое поле деятельности для шифрования... 5) Ну для COM уже говорили 6) Для клиентов при установке приложения из очень многих файлов надо обеспечить совместимость версий и т.п. Кто работал тот знает какую кашу может сотворить продвинутый пользователь тщательно перемешав файлы от разных версий продукта у себя, а потом лезут ошибки которые распутать подчас бывает очень сложно. Поэтому в базу данных кладём табличку или SP с GUID и по нему программа проверяет версию базы данных, в каждую DLL кладём по GUID'у который врзвращается в ответ на какую-нибудь функцтю, к исполняемым файлам можно подшить в ресурсы и т.п. Если аккуратно сделать и эти идентификаторы тщательно запрятать, то клиенту очень сложно будет вручную перемешать файлы, базы данных и т.п. - система безошибочно найдёт все неверные версии а не будет вылетать по малопонятным ошибкам. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |