powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Формат сценария при сравнении CHAR SET OCTETS [187]
10 сообщений из 10, страница 1 из 1
Формат сценария при сравнении CHAR SET OCTETS [187]
    #39308563
При сравнении в двух БД таблиц, содержащих поле типа CHAR( <n> ) CHARACTER SET OCTETS (используемое у меня для значений UUID), модуль сравнения данных генерирует сценарий, в котором значения этого поля имеют вид строковых литералов, хотя на самом деле они этого не допускают, т.к. содержат двоичные данные. Пользоваться таким сценарием невозможно. В частности, если значение поля содержит нулевой байт (#0), то следующий за этим байтом текст остаётся не загружен в редактор сценариев.
Наверно, следует автоматически помещать значения полей такого типа в LOB-файл или дать возможность пользователю с помощью настройки сравнения сделать это. Ещё один способ решения проблемы — введение специальных знаков в литералы (наподобие паскалевских #<n>).
...
Рейтинг: 0 / 0
Формат сценария при сравнении CHAR SET OCTETS [187]
    #39308606
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий Андреев,

не надо специальных литералов. В 2.5 всё уже давно есть Hex Literal Support
Для CHARACTER SET OCTETS это самое то.
...
Рейтинг: 0 / 0
Формат сценария при сравнении CHAR SET OCTETS [187]
    #39308783
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О каком сравнении идет речь - данных таблиц или метаданных баз? Версия сервера? ODS баз?
...
Рейтинг: 0 / 0
Формат сценария при сравнении CHAR SET OCTETS [187]
    #39308867
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,

данных конечно же.
...
Рейтинг: 0 / 0
Формат сценария при сравнении CHAR SET OCTETS [187]
    #39309160
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисданных конечно же.

Там есть преобразование в hex literals, в зависимости от ODS базы. Поэтому я на всякий случай задал и этот вопрос.
...
Рейтинг: 0 / 0
Формат сценария при сравнении CHAR SET OCTETS [187]
    #39309201
IBExpert,

имеется в виду сравнение данных (не метаданных) таблиц в двух базах данных Firebird 1.5 (ODS 10.1).
Может быть, в IBExpert'е уже есть 16-ричные литералы, и я просто не знаю? Но почему они не используются в сценарии, который генерируется при сравнении?
...
Рейтинг: 0 / 0
Формат сценария при сравнении CHAR SET OCTETS [187]
    #39309297
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий Андреев,

потому что в 1.5 hex literals не было.
...
Рейтинг: 0 / 0
Формат сценария при сравнении CHAR SET OCTETS [187]
    #39309386
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий АндреевНо почему они не используются в сценарии, который генерируется при сравнении?

Денис уже ответил. Скорее всего, делать какие-то костылики для старых серверов я не буду.
Хотя, наверное, в LOB их выгружать можно. Присылай пример базы (одна табличка, несколько записей с октетами) - я посмотрю.
...
Рейтинг: 0 / 0
Формат сценария при сравнении CHAR SET OCTETS [187]
    #39309747
IBExpert,

Вот две БД с таблицей для сравнения. При сравнении в одну сторону часть текста сценария в редакторе исчезает (байт 0x00), при сравнении в другую сторону строка оператора update разрывается (байты 0x0d и 0x0a).
...
Рейтинг: 0 / 0
Формат сценария при сравнении CHAR SET OCTETS [187]
    #39310498
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал выгрузку октетов в LOB. Вроде работает.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Формат сценария при сравнении CHAR SET OCTETS [187]
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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