|
Формат сценария при сравнении CHAR SET OCTETS [187]
|
|||
---|---|---|---|
#18+
При сравнении в двух БД таблиц, содержащих поле типа CHAR( <n> ) CHARACTER SET OCTETS (используемое у меня для значений UUID), модуль сравнения данных генерирует сценарий, в котором значения этого поля имеют вид строковых литералов, хотя на самом деле они этого не допускают, т.к. содержат двоичные данные. Пользоваться таким сценарием невозможно. В частности, если значение поля содержит нулевой байт (#0), то следующий за этим байтом текст остаётся не загружен в редактор сценариев. Наверно, следует автоматически помещать значения полей такого типа в LOB-файл или дать возможность пользователю с помощью настройки сравнения сделать это. Ещё один способ решения проблемы — введение специальных знаков в литералы (наподобие паскалевских #<n>). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2016, 16:35 |
|
Формат сценария при сравнении CHAR SET OCTETS [187]
|
|||
---|---|---|---|
#18+
Валерий Андреев, не надо специальных литералов. В 2.5 всё уже давно есть Hex Literal Support Для CHARACTER SET OCTETS это самое то. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2016, 17:05 |
|
Формат сценария при сравнении CHAR SET OCTETS [187]
|
|||
---|---|---|---|
#18+
О каком сравнении идет речь - данных таблиц или метаданных баз? Версия сервера? ODS баз? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2016, 08:31 |
|
Формат сценария при сравнении CHAR SET OCTETS [187]
|
|||
---|---|---|---|
#18+
IBExpert, данных конечно же. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2016, 10:51 |
|
Формат сценария при сравнении CHAR SET OCTETS [187]
|
|||
---|---|---|---|
#18+
Симонов Денисданных конечно же. Там есть преобразование в hex literals, в зависимости от ODS базы. Поэтому я на всякий случай задал и этот вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2016, 16:15 |
|
Формат сценария при сравнении CHAR SET OCTETS [187]
|
|||
---|---|---|---|
#18+
IBExpert, имеется в виду сравнение данных (не метаданных) таблиц в двух базах данных Firebird 1.5 (ODS 10.1). Может быть, в IBExpert'е уже есть 16-ричные литералы, и я просто не знаю? Но почему они не используются в сценарии, который генерируется при сравнении? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2016, 17:16 |
|
Формат сценария при сравнении CHAR SET OCTETS [187]
|
|||
---|---|---|---|
#18+
Валерий Андреев, потому что в 1.5 hex literals не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2016, 19:45 |
|
Формат сценария при сравнении CHAR SET OCTETS [187]
|
|||
---|---|---|---|
#18+
Валерий АндреевНо почему они не используются в сценарии, который генерируется при сравнении? Денис уже ответил. Скорее всего, делать какие-то костылики для старых серверов я не буду. Хотя, наверное, в LOB их выгружать можно. Присылай пример базы (одна табличка, несколько записей с октетами) - я посмотрю. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2016, 04:32 |
|
Формат сценария при сравнении CHAR SET OCTETS [187]
|
|||
---|---|---|---|
#18+
IBExpert, Вот две БД с таблицей для сравнения. При сравнении в одну сторону часть текста сценария в редакторе исчезает (байт 0x00), при сравнении в другую сторону строка оператора update разрывается (байты 0x0d и 0x0a). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2016, 15:40 |
|
|
start [/forum/topic.php?fid=42&msg=39308783&tid=1599220]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 132ms |
0 / 0 |