GoldenSoftwareLtd / gedemin

22 stars 13 forks source link

Ошибка при обновлении ПИ. #4485

Closed yoannawx closed 4 months ago

yoannawx commented 4 months ago

Ошибка из-за неверного синтаксиса скл-запроса. ехе от 02.07.24

image

MIchaelShoihet commented 4 months ago

Странно запрос правильный. А какой там сервер firebird?

yoannawx commented 4 months ago

да, не FB3, a FB2.5

image

MIchaelShoihet commented 4 months ago

На нем это вообще не должно выполняться... Проверка версий FB должна быть

Polfath commented 4 months ago

Там есть проверка на версию при загрузке ексепшинов и гранты раздаются только, если версия >= 3

MIchaelShoihet commented 4 months ago

Если есть почему под 2.5 выполняется, надо проверить

Polfath commented 4 months ago

Я проверил. У меня на той же базе тоже ПИ, что и у @yoannawx загрузка ПИ отработала (версия вернулась 2). Как мне поймать этот баг?

gsbelarus commented 4 months ago

а как вы версию определяете?

Polfath commented 4 months ago

procedure AddGrant; begin //Для FB версии >= 3 нужны гранты на EXCEPTION if Active and (not IsEmpty) and (Database.ServerMajorVersion >= 3) then S.Add('GRANT USAGE ON EXCEPTION ' + FirebirdObjectName + ' TO ADMINISTRATOR'); end;

Polfath commented 4 months ago

TgdcException.GetMetadataScrip

yoannawx commented 4 months ago

Отловила, как получается ошибка. Работала на базе под ФБ3. Сделала База данных - Отключиться. Потом База данных - Подключиться и подключилась к другой базе, которая под ФБ 2.5. И вот в этом случае получила ошибку при установке пи.

Polfath commented 4 months ago

Для корректной работы при переключении между БД, если версия ФБ была 2.5, а хотите подключиться к 3+ лучше переоткрыть Гедемин.

NikolayUkleyko commented 4 months ago

”Для корректной работы при переключении между БД, если версия ФБ была 2.5, а хотите подключиться к 3+ лучше переоткрыть Гедемин.”

Как в данной ситуации и ряде других надежнее выполнять закрытие программы и новое подключение к базе данных. Варианты переподключения и прочие (может быть их убрать вовсе) могут не давать должного эффекта.

gsbelarus commented 4 months ago

@Polfath это ошибка у нас. не сбрасываются какие-то закэшированные переменные.

MIchaelShoihet commented 4 months ago

Мы нашли место. Оно IBDatabase. Там один раз считывается версия firebird. Надо лезть внутрь его, а зачем? Там все переменные ReadOnly один раз инициализируются. Я думаю, что нет смысла, в этом копаться

Polfath commented 4 months ago

Сделал