Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / sys_guid тип / 24 сообщений из 24, страница 1 из 1
05.05.2003, 16:48
    #32153615
viman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
Я создаю id значения с помощью select sys_guid() guid from dual. Тип значения RAW. Подскажите какой тип соответсвует ему в Delphi. tGuid в Delphi я так понял не относится этому.
...
Рейтинг: 0 / 0
05.05.2003, 17:00
    #32153628
LG
LG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
Любой, с длиной достаточной для хранения ...
...
Рейтинг: 0 / 0
06.05.2003, 08:02
    #32153931
viman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
Например??? Пока что я могу только как string его хранить. Из базы как asinteger оно не забирается, в int64 через strtoint не конвертится, потому что оно не integer и не float.
...
Рейтинг: 0 / 0
06.05.2003, 10:17
    #32153997
LG
LG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
Как ты думаешь, какой тип данных нужен для 8D47AFE05C6142B294AF0605F7F1C5D0.
Integer, Int64 точно не подойдут :))
{'8D47AFE0-5C61-42B2-94AF-0605F7F1C5D0'} - а так лучше?
...
Рейтинг: 0 / 0
06.05.2003, 10:50
    #32154032
viman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
x:tguid;
x:=stringtoGUID(fomain.sqguid.FieldByName('guid').Asstring);
непонимается, вобщемто я уже забил на это, на number переделал, но просто интересно. просто эта тема понималась здесь, и в новой программе я решил попробовать использовать GUID. Но sys_guid() и tguid видимо имеют разный формат.
...
Рейтинг: 0 / 0
06.05.2003, 11:18
    #32154055
LG
LG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
>>{'8D47AFE0-5C61-42B2-94AF-0605F7F1C5D0'} - а так лучше?
Если Ты не просек фишку, то по проще:
Достаточно привести sys_guid() к виду пригодному для конвертации StringToGUID и сконвертить (т.е. навставлять тире ). Результат не заставит себя ждать ...
З.Ы. Я, прежде чем сдаваться, по крайней мере залез бы и посмотрел, что делает StringToGUID и что такое GUID вообще.
...
Рейтинг: 0 / 0
06.05.2003, 11:25
    #32154067
viman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
Фишку я просек, но delphi asstring не просекает этот формат.
Вот что в базе 3201DCE1A66D4732B7276542EEDAE8C8
И примерно такую хрень черех FieldByName('guid').Asstring возвращает Delphi D??‘u?A€?`?>’@J°.
А в остальном все хорошо :-)
...
Рейтинг: 0 / 0
06.05.2003, 12:09
    #32154133
LG
LG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
а rawtohex не пробовал?
...
Рейтинг: 0 / 0
06.05.2003, 12:36
    #32154166
viman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
Честно говоря не нашел такой команды.
...
Рейтинг: 0 / 0
06.05.2003, 12:42
    #32154174
LG
LG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
select rawtohex(sys_guid()) from dual;
...
Рейтинг: 0 / 0
06.05.2003, 13:08
    #32154219
viman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
string теперь нормальный, но stringtoguid все равно не работает. жаль. тире руками добавлять вообще не выход. видимо все равно на этом прогу рабочую не напишешь.
2 Eter Panji
Вы мне советовали
"Переходи на GUID и храни его в ROW Самый простой выход"
И как?
...
Рейтинг: 0 / 0
06.05.2003, 13:34
    #32154251
LG
LG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
>>тире руками добавлять вообще не выход. видимо все равно на этом прогу рабочую не напишешь.
Абсолютно верно.

А зачем понадобилось создавать
>>Я создаю id значения с помощью select sys_guid() guid from dual.

Чем не подходят sequences. Может стоит пересмотреть условие и реализацию задачи?
...
Рейтинг: 0 / 0
06.05.2003, 13:39
    #32154264
viman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
По этому поводу \r
/topic/29782
...
Рейтинг: 0 / 0
06.05.2003, 13:49
    #32154280
Eter Panji
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
select CAST(sys_guid()AS char(32)) FROM DUAL
...
Рейтинг: 0 / 0
06.05.2003, 14:06
    #32154311
viman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
Проблема c пониманием как string решена, но дальше... если только конечно оставить string. крииииивооооо :-(
...
Рейтинг: 0 / 0
06.05.2003, 14:15
    #32154326
Eter Panji
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
Где?
На клиенте спокойно живешь со строчечкой. Тебе она в жизни потребуется едва ли для того чтобы сделать поиск по первичному ключу. И всё.
На сервере колбасишся с чистым ROW и ни о чем не думаешь. Одно удовольствие.
...
Рейтинг: 0 / 0
06.05.2003, 14:23
    #32154333
LG
LG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
А размер?
...
Рейтинг: 0 / 0
06.05.2003, 14:28
    #32154339
viman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
размер 32
...
Рейтинг: 0 / 0
06.05.2003, 14:32
    #32154347
Eter Panji
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
NUMBER = 19 bytes
ROW(16) = 16 bytes

Японимаю что NUMBEr можно сделать меньше, но если это автоинкремент
то ...

В общем разница не так велика.
...
Рейтинг: 0 / 0
06.05.2003, 14:37
    #32154357
viman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
Проблема была в возможном повторении id при асинхронной репликации, собственно guid как вариант вполне реален. По крайней мере не нужно заботится о том что когда нибудь появится строка с таким же номером.
...
Рейтинг: 0 / 0
06.05.2003, 14:39
    #32154359
LG
LG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
Ну ...
Если несколько миллиардов записей можно разместить в 4 байтах, зачем использовать 16? в 4 раза больше однако ...
...
Рейтинг: 0 / 0
06.05.2003, 14:41
    #32154362
LG
LG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
Если голосовать, то я за вариант с последовательностями ...
И траффик от репликации меньше, то же плюс ...
А в реализации не на много сложнее ...
...
Рейтинг: 0 / 0
06.05.2003, 14:45
    #32154365
Eter Panji
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
А теперь давай рассчитаем среднюю длинну строки и процен увеличения относительно ее а не относительно одного поля.
Тогда эти 12 байт станут очень незаметны.
И я бы все-таки отложил не 4 а 5 миллиард это не так много
тем более если база для нескольких филиалов
...
Рейтинг: 0 / 0
06.05.2003, 14:49
    #32154369
viman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_guid тип
о миллиардах вообще речь не идет.
можно принять что например максимальное колво записей (лет через 200) 100 000 000, и у всех секвенсоры настроить так, или шаг сделать. Ну его этот гуид.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / sys_guid тип / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]