|
Компарер, изменение вычисляемого поля + дроп полей.
|
|||
---|---|---|---|
#18+
Добрый день. Столкнулся со следующей проблемой. В результате сравнения двух скриптов метаданных в результирующем скрипте не меняется вычисляемое поле, а также выполняется дроп всех следующих после него полей. У поля изменяется тип: В эталоне: SUMMA_CHECK NUMERIC(14,2) COMPUTED BY ... В таргете: SUMMA_CHECK COMPUTED BY ... Скрипты сравниваю IBEScript'ом. Версия 2016.10.27.1. В эксперте, при сравнивании непосредственно баз, проблемы с дропом не возникает. Однако все же стоит отметить, что тип поля не меняется, он закомментирован - ALTER TABLE ... ADD SUMMA_CHECK /* NUMERIC(14,2) */ COMPUTED BY ... При сравнивании же скриптов - появляется сообщение, что была ошибка, смотри лог. Кстати, где этот лог поискать? Ни в папке с экспертом, ни в аппдата ничего нет. Проблема возникает на рабочей базе. Пробовал воспроизвести в эксперте в виде отдельно примера только с этой "проблемной" таблицей - не получилось. Посему точно определить зависимость возникновения ошибки затрудняюсь. Мои наблюдения, что в результирующем скрипте не так: Дропается поле SUMMA_CHECK, все ОК. Добавляется обратно с новым типом, однако без COMPUTED BY. Сразу после этого дропаются все оставшиеся до конца таблицы поля. Если необходимо, могу предоставить скрипты эталона, таргета и результирующий, или болванки баз. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2016, 15:58 |
|
Компарер, изменение вычисляемого поля + дроп полей.
|
|||
---|---|---|---|
#18+
Дополнение: Может быть болезнь живет выше? Вот что получается при выполнении команды сравнения ibec_CompareMetadata(MasterDbMetadataFilename, TargetDbMetadataFilename, MetadataUpdateScriptFilename, 'SafeDatatypeConversion; IgnoreIBEObjects; ServerVersion=FB25', NULL); Error in script: DbStructureUpdate.sql Error occurred while executing following statement (line 702): -------- STATEMENT ---------- ( ? , ? , ? , 'SafeDatatypeConversion; IgnoreIBEObjects; ServerVersion=FB25', NULL) -------- ERROR ---------- Missing: <)> (COMPUTED) Script: d:\Work\IBEScripts\GlobalDbUpdate\...\SYS01_1_Metadata.sql Line:5575 Pos:50 Error in script: DbStructureUpdate.sql Error occurred while executing following statement (line 702): -------- STATEMENT ---------- ( ? , ? , ? , 'SafeDatatypeConversion; IgnoreIBEObjects; ServerVersion=FB25', NULL) -------- ERROR ---------- Missing: <)> (COMPUTED) Script: d:\Work\IBEScripts\GlobalDbUpdate\...\MasterDbMetadata.sql Line:5955 Pos:52 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2016, 19:57 |
|
Компарер, изменение вычисляемого поля + дроп полей.
|
|||
---|---|---|---|
#18+
Ну так надо посмотреть, что там в исходном скрипте живет по координатам Line:5575 Pos:50 и Line:5955 Pos:52. Парсер почему-то ожидает скобку, а находит COMPUTED. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2016, 03:38 |
|
Компарер, изменение вычисляемого поля + дроп полей.
|
|||
---|---|---|---|
#18+
В предыдущем посте я пробовал в таргет впихнуть уже измененное поле, поэтому парсер выдал ошибку в двух местах. В обоих скриптах сидит поле с типом - NUMERIC(14,2). В оригинале же ошибка лезет только одна, поскольку NUMERIC(14,2) сидит только в мастере: Error in script: DbStructureUpdate.sql Error occurred while executing following statement (line 702): -------- STATEMENT ---------- ( ? , ? , ? , 'SafeDatatypeConversion; IgnoreIBEObjects; ServerVersion=FB25', NULL) -------- ERROR ---------- Missing: <)> (COMPUTED) Script: d:\Work\IBEScripts\GlobalDbUpdate\...\MasterDbMetadata.sql Line:5955 Pos:52 Строка 5955 как есть в мастер скрипте, 52 символ получается "B", который из BY SUMMA_CHECK NUMERIC(14,2) COMPUTED BY (COALESCE(SUMMA_CASH,0)+... В таргете NUMERIC(14,2) отсутствует SUMMA_CHECK COMPUTED BY (COALESCE(SUMMA_CASH,0)+... Тут все в порядке, парсер молчит. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2016, 10:51 |
|
Компарер, изменение вычисляемого поля + дроп полей.
|
|||
---|---|---|---|
#18+
Провел еще нескольких опытов. Получается парсеру не нравится наличие типа поля, в моем случае NUMERIC(14,2), в вычисляемом поле. Если тип поля убрать - все ок. Не понятно почему в моем случае парсер ждет именно закрывающую набор полей таблицы скобку, считая, что полей больше нет, а не, к примеру, запятую со следующими полями таблицы. Однако это объясняет дроп оставшихся полей таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2016, 14:41 |
|
Компарер, изменение вычисляемого поля + дроп полей.
|
|||
---|---|---|---|
#18+
Tofik EmailovichНе понятно почему в моем случае парсер ждет именно закрывающую набор полей таблицы скобку, считая, что полей больше нет, а не, к примеру, запятую со следующими полями таблицы. Однако это объясняет дроп оставшихся полей таблицы. Дроп происходит, потому что парсер спотыкается и остаток определения на парсит. Соответственно, все, что в этом остатке, не попадает в структуру БД, которую строит анализатор скрипта. С типом вычисляемого поля попробую разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2016, 09:34 |
|
Компарер, изменение вычисляемого поля + дроп полей.
|
|||
---|---|---|---|
#18+
Добрый день. Читал пост ExecScriptText2 ошибка на версии IBEScript.dll от 27.10.2016 , порадовался долгожданному выходу обновления IBEScript'ов. К собственному сожалению, оказалось, сей сабж не решен, посему решил напомнить о нем. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2017, 15:26 |
|
Компарер, изменение вычисляемого поля + дроп полей.
|
|||
---|---|---|---|
#18+
Tofik EmailovichК собственному сожалению, оказалось, сей сабж не решен, посему решил напомнить о нем. Проверь в свежей версии эксперта. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2017, 06:28 |
|
Компарер, изменение вычисляемого поля + дроп полей.
|
|||
---|---|---|---|
#18+
IBExpert Проверь в свежей версии эксперта. В самом эксперте изначально было все в порядке, если не считать закомментированный тип поля в результирующем скрипте - ALTER TABLE ... ADD SUMMA_CHECK /* NUMERIC(14,2) */ COMPUTED BY ... Проблема существует в IBEScript.exe. Проверял в версии 2017.3.5.1. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2017, 17:27 |
|
Компарер, изменение вычисляемого поля + дроп полей.
|
|||
---|---|---|---|
#18+
Tofik EmailovichВ самом эксперте изначально было все в порядке, если не считать закомментированный тип поля в результирующем скрипте - ALTER TABLE ... ADD SUMMA_CHECK /* NUMERIC(14,2) */ COMPUTED BY ... Проблема существует в IBEScript.exe. Проверял в версии 2017.3.5.1. Я же говорю: проверь сравнение скриптов в эксперте. Он тоже умеет сравнивать скрипты. Не может быть, чтобы он скрипты по-другому сравнивал, там один и тот же код. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2017, 18:07 |
|
Компарер, изменение вычисляемого поля + дроп полей.
|
|||
---|---|---|---|
#18+
IBExpertЯ же говорю: проверь сравнение скриптов в эксперте. Он тоже умеет сравнивать скрипты. Не может быть, чтобы он скрипты по-другому сравнивал, там один и тот же код. Проверил в эксперте сравнение скриптов - все ок. Прикладываю архив с файлами эталонов мастера и таргета + результирующие скрипты обновления, полученные экспертом и IBEscript'ом. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2017, 14:49 |
|
Компарер, изменение вычисляемого поля + дроп полей.
|
|||
---|---|---|---|
#18+
Tofik EmailovichПроверил в эксперте сравнение скриптов - все ок. Ну и хорошо. Сегодня соберу IBEScript с теми исправлениями. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2017, 15:34 |
|
Компарер, изменение вычисляемого поля + дроп полей.
|
|||
---|---|---|---|
#18+
Проверил, все в порядке. Спасибо. Однако, все же точности ради, хочу отметить - в результирующем скрипте, и эксперт, и ибе-скрипт тип в вычисляемом поле оставляют закоментированным. ALTER TABLE SALEHEAD ADD SUMMA_CHECK /* NUMERIC(14,2) */ COMPUTED BY ... Это возможно исправить, или придется с этим жить? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2017, 12:10 |
|
Компарер, изменение вычисляемого поля + дроп полей.
|
|||
---|---|---|---|
#18+
Tofik EmailovichОднако, все же точности ради, хочу отметить - в результирующем скрипте, и эксперт, и ибе-скрипт тип в вычисляемом поле оставляют закоментированным. ALTER TABLE SALEHEAD ADD SUMMA_CHECK /* NUMERIC(14,2) */ COMPUTED BY ... Это возможно исправить, или придется с этим жить? Тип в комментарии - для справки. Исправить, может, и можно, но смысла тратить на это время я не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2017, 12:26 |
|
|
start [/forum/topic.php?fid=42&fpage=19&tid=1599126]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 164ms |
0 / 0 |