Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Компарер / 15 сообщений из 15, страница 1 из 1
12.01.2016, 11:57
    #39145305
sergq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
Здравствуйте

Периодически при выполнении скрипта после сравнения баз выкидывает ошибку

The object of the insert update delete statement is a view for witch the requested operations is not permitted
Cannot update read-only view xxx.

Собственно повторное сравнение базы не показывает различий.
Можно это сообщение выводить не через messagebox, а в окно сообщений об ошибках выполнения скрипта.
Ну очень мешает messagebox )


Спасибо
...
Рейтинг: 0 / 0
12.01.2016, 17:47
    #39145734
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
Во-первых, непонятно, причем здесь компарер.
Во-вторых, непонятно, какой именно оператор приводит к данной ошибке.
Что лечить-то?
...
Рейтинг: 0 / 0
23.02.2016, 00:36
    #39176967
sergq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
IBExpert,

да. компарер тут не при чем ))

выскакивает сообщение. скрин в аттаче.

На каком операторе - не знаю. ибо при этом скрипт в мемо не позиционируется.

А хотелось бы просто чтобы это сообщение не выдавалось через messagebox, а выдавалось в лог ошибок выполнения скрипта.
Тк все равно повторное сравнение не выдает различий баз
...
Рейтинг: 0 / 0
23.02.2016, 00:51
    #39176968
sergq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
самое интересное, что похоже единожды поймав эту ошибку и выдав messagebox scriptExecute выдает это окно почти до конца выполнения скрипта. тк сейчас посмотрел если посмотреть на статус выполнения скрипта в верхней части окна - создаются триггера.
Но на том, на который выводится сообщение - почти пустой и не затрагивает никаких других объектов базы.
те типа присваивания ПК через триггер. А в тексте мессаджа указывает имя вьюхи, которой нет в текущем стейтменте создания триггера.
...
Рейтинг: 0 / 0
23.02.2016, 15:44
    #39177135
sergq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
и если этот же получившийся скрипт выполнить по стейтментам в SQL editor отдельно - никаких сообщений об ошибках не выдается
...
Рейтинг: 0 / 0
23.02.2016, 16:33
    #39177147
sergq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
sergq,

последнее снимается ) не в ту базу посмотрел )
...
Рейтинг: 0 / 0
25.02.2016, 05:47
    #39178288
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
Таки надо разобраться, когда и откуда именно эта ошибка лезет. Включай SQL-монитор и смотри.
Иначе непонятно, что и как лечить.
...
Рейтинг: 0 / 0
03.03.2016, 17:37
    #39185266
oleg973
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
IBExpert 2016.2.19.1, Firebird 2.1.

1. Две базы.

В первой создаем таблицу:

CREATE TABLE TEST (
A VARCHAR(40)
);

commit;

Во второй:

CREATE TABLE TEST (
A VARCHAR(10)
);

commit;

alter table test alter column a type varchar(40);

commit;

Сравнение БД выдает скрипт:

ALTER TABLE TEST ALTER COLUMN A
TYPE VARCHAR(40);


2. Процедура ibec_CompareMetadata с опцией OmitUserGrants включает в скрипт гранты на роль для пользователей (типа GRANT ADMROLE TO IVANOV;), тогда как при запуске из меню "Сравнение БД" результирующий скрипт не содержит таких команд (что правильно).
...
Рейтинг: 0 / 0
04.03.2016, 06:56
    #39185535
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
1. Не понял вопроса. Компарер нашел различия. Почему он их там видит после твоего альтера - это не к нему вопрос.
2. Проверю.
...
Рейтинг: 0 / 0
04.03.2016, 07:37
    #39185541
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
2. А при запуске сравнения из окна DB Comparer какие галки включены для привилегий?
...
Рейтинг: 0 / 0
04.03.2016, 11:31
    #39185757
oleg973
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
IBExpert,

1. В результате первого и второго скрипта получаются абсолютно идентичные таблицы.Почему компарер находит между ними различия?
Похоже компарер анализирует поле RDB$FIELD_SUB_TYPE в системной таблице RDB$FIELDS для полей типа VARCHAR.
Значение поля RDB$FIELD_SUB_TYPE измняется после команды alter column (сервер Firebird 2.1). После alter column в это поле заносится значение 308 (для поля типа VARCHAR). В первой БД, где не была выполнена команда alter column в поле RDB$FIELD_SUB_TYPE хранится 0.



2. Включена галка Role privileges.
...
Рейтинг: 0 / 0
05.03.2016, 06:31
    #39186308
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
oleg9731. В результате первого и второго скрипта получаются абсолютно идентичные таблицы.Почему компарер находит между ними различия?
Похоже компарер анализирует поле RDB$FIELD_SUB_TYPE в системной таблице RDB$FIELDS для полей типа VARCHAR.
Значение поля RDB$FIELD_SUB_TYPE измняется после команды alter column (сервер Firebird 2.1). После alter column в это поле заносится значение 308 (для поля типа VARCHAR). В первой БД, где не была выполнена команда alter column в поле RDB$FIELD_SUB_TYPE хранится 0.

Да, все поля анализируются по умолчанию. Интересно, что это за 308, которое заносится при альтере...
Если полученный скрипт накатить, то на следующем проходе компарер тоже разницу находит?
...
Рейтинг: 0 / 0
05.03.2016, 14:37
    #39186415
oleg973
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
Да, находит.

Кстати, в версии IBExpert от 2013 года, компарер разницы между одинаковыми таблицами не находит. Похоже он не анализирует поле FIELD_SUB_TYPE для полей типа VARCHAR.
...
Рейтинг: 0 / 0
05.03.2016, 17:30
    #39186487
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
1. Убрал анализ subtype для CHAR/VARCHAR.
2. Исправил.
...
Рейтинг: 0 / 0
10.03.2016, 11:37
    #39188889
oleg973
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компарер
Спасибо!
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Компарер / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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