| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > GUID как с ними работать |
| Автор: User 25.1.2005, 13:25 |
| Наверное многим чатланам было бы интересно узнать что такое Guid и как с ним работать в Delphi. Я этим вопросом заинтересовался недавно, но литературы по нему так и не нашел. Предлогаю собрать сдесь небольшой анонс решений данной проблемы. Пишите! Это действительно интересно многим! |
| Автор: <Spawn> 26.1.2005, 06:23 | ||
| Вообще то этот вопрос стоило задать в ActiveX\COM\CORBA. GUID - Global Unique IDentifier - Глобальный Уникальный Иеднтификатор В Дельфи с ним работать просто
Если нужно самому сгенерить его, то в IDE Дельфи это делается путем нажатия Ctrl+SHift+G, либо программно нужно вызвать функцию CoCreateGUID(Либо поискать на форуме - тут вроде была темка его ручной генерации |
| Автор: Петрович 29.1.2005, 20:46 | ||||||
Совсем не обязательно. Дело в том, что GUID очень удобно для уникальной идентификации записей в БД. Например, в MS SQL-server'е есть даже специальный тип - uniqueidentifier.
А проблемы никакой и нет Как и сказал <Spawn>, просто используй функцию CreateGUID. Если нужно сгененрировать GUID на MS SQL-сервере, то испоьзуй функцию NEWID(). Вот пример как я "генерю" значение идентификатора для новых записей:
|
| Автор: Vit 30.1.2005, 06:45 |
| Последнее время использую их всё чаще и чаще... Очень удобно иметь 100% уникальную строку, практически везде - от баз данных, до уникального имени файла. Везде где надо гарантировать неповторяемость строки использую GUID. Например: 1) при автоматической рассылке email вставляю GUID в заголовок письма как его идентификатор, если клиент звонит с проблемой - по этому GUID я точно идентифицирую что за транзакция была где и когда. 2) Есть система в которой информация передаётся файлами от компа к другому - для уникальности имени использую GUID в качестве имени файла 3) Как ключи в таблице -чтоб не мучится с уникальностью, особенно если есть репликация данных 4) MD5 в результате тоже выдаёт 16 байт, как и GUID - широкое поле деятельности для шифрования... 5) Ну для COM уже говорили 6) Для клиентов при установке приложения из очень многих файлов надо обеспечить совместимость версий и т.п. Кто работал тот знает какую кашу может сотворить продвинутый пользователь тщательно перемешав файлы от разных версий продукта у себя, а потом лезут ошибки которые распутать подчас бывает очень сложно. Поэтому в базу данных кладём табличку или SP с GUID и по нему программа проверяет версию базы данных, в каждую DLL кладём по GUID'у который врзвращается в ответ на какую-нибудь функцтю, к исполняемым файлам можно подшить в ресурсы и т.п. Если аккуратно сделать и эти идентификаторы тщательно запрятать, то клиенту очень сложно будет вручную перемешать файлы, базы данных и т.п. - система безошибочно найдёт все неверные версии а не будет вылетать по малопонятным ошибкам. |