![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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-й строке)