Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

FIB + GUID [D7]


MM_ASH ©   (2007-04-11 13:23:00) 

Добрый день, уважаемые мастера! У меня возникла следующая проблема:
- хочу реализовать в FireBird1.5 поле типа GUID
- использую FibPlus
- при записи в SQL передаю параметром нулевой GUID {00000000-0000...}
- домен GUID поля CHAR(16) CHARACTER SET OCTETS
- после чтения из базы получаю {00F5...и всякий мусор}
- профайлером смотрю что возвращает запрос на выборку - там {00000000-0000...}
В чем может быть ошибка?


MM_ASH   (2007-04-12 11:31:00) [1]

Ладно... спасибо :-)


Сергей М.   (2007-04-12 10:52:00) [2]


> MM_ASH   (12.04.07 10:40) [12]


Ну раз "не обрабатывается", то конечно на клиенте, где же еще ?


MM_ASH   (2007-04-12 10:40:00) [3]

Ну в общем да... фраза битовый массив должна была объяснить суть того, что это бинаные данные :-) Но это мне не как не решило проблему... GUID разбирается на клиенте внутри FIB или же внутри DB до первого #0... Там используется функция CopyData.. не может ли быть дело в ней?


Сергей М.   (2007-04-12 08:16:00) [4]


> MM_ASH   (11.04.07 15:54) [10]


И где там написано про "битовый массив" ?
То что преобразованиям не подвергается - это и так понятно.
И то что строку можно интерпретировать как массив байт- тоже очевидно.
Но вот интерпретация строки как именно битовогомассива - это уже чудеса внешнейобработки)


MM_ASH   (2007-04-11 15:54:00) [5]

http://www.ibase.ru/devinfo/octets.htm


Сергей М.   (2007-04-11 14:42:00) [6]


> MM_ASH   (11.04.07 13:43) [5]


> битовый массив


Что за бред ?


Jan1   (2007-04-11 14:38:00) [7]

ну и http://www.ibase.ru/d_udf.htm- там есть еще.


Jan1   (2007-04-11 14:37:00) [8]

http://www.ibase.ru/devinfo/test2.htm


Desdechado   (2007-04-11 13:52:00) [9]

> что бы FireBird хранил в строке бинарные данные и не обрезал ее после символа #0
Откуда в твоем гуиде двоичный ноль? Там же только 16-чные цифры?


MM_ASH   (2007-04-11 13:43:00) [10]

>Сергей М.
Эти данные FIB интерпретирует как битовый массив, но интерпретирует похоже не верно.

>Desdechado
Зачем это?
В подключении тоже указывается кодировка. Совпадает?
Это нужно что бы FireBird хранил в строке бинарные данные и не обрезал ее после символа #0
В подключении не указываю, т.к. это кодировка только для одного типа строк


Сергей М.   (2007-04-11 13:27:00) [11]


> GUID содержит символы #0,


Ну так если ты это понимаешь, какого же ты интерпретируешь эти данные как строковые ?


Desdechado   (2007-04-11 13:26:00) [12]

> CHARACTER SET OCTETS
Зачем это?
В подключении тоже указывается кодировка. Совпадает?


MM_ASH   (2007-04-11 13:25:00) [13]

Я так понимаю происходит не верное преобразование уже при обработке полученного от сервера набора данных из-за того, что GUID содержит символы #0, поскольку для других значений GUID результат верный


Сергей М.   (2007-04-11 13:25:00) [14]


> В чем может быть ошибка?


Известно в чем - в 17-й строке)


Наверх

Титульная страница Поиск, карта сайта Написать письмо