Как перенести пользователей из IB 5.5 в FB 1.5.2?

Администирование клиентской и серверной части InterBase, Firebird, Yaffil. Настройка файла конфигурации и т.п.

Модераторы: kdv, Alexey Kovyazin

Ответить
NT Man
Сообщения: 17
Зарегистрирован: 24 янв 2005, 12:29

Как перенести пользователей из IB 5.5 в FB 1.5.2?

Сообщение NT Man » 03 авг 2005, 15:03

Вообще возможно ли такое?
Если возможно, то опишите плиз технологию.
Заранее спасибо.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 03 авг 2005, 15:05

прочитай www.ibase.ru/devinfo/sqlroles.htm

в ib 5.x юзеры хранятся в isc4.gdb. в FB 1.5 - в securify.fdb. дальше сам разберешься.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Re: Как перенести пользователей из IB 5.5 в FB 1.5.2?

Сообщение Merlin » 03 авг 2005, 16:35

NT Man писал(а):Вообще возможно ли такое?
Если возможно, то опишите плиз технологию.
Заранее спасибо.
База с юзерами - такая же база, как и любая другая. Правила миграции едины - бакап под старой версией, рестор под новой.

NT Man
Сообщения: 17
Зарегистрирован: 24 янв 2005, 12:29

Сообщение NT Man » 03 авг 2005, 18:33

Почти получилось :)
Забекапил IB gbak-ом потом восстановил FB gbak-ом и сунул куда нужно.
Через BDE Administrator к базе подключаюсь, а программа не работает :(

Наверное стоит рассказать из-за чего весь сыр бор. Сам я в своих проектах использую FB и диалект 3 и работаю через IBX. Всё бы хорошо, да вот в наследство досталась программа судя по всему написанная на Delphi (исходников нету), которая работает только с IB 5.5 через BDE используя 1 диалект. Естественно этот IB 5.5 для меня как бельмо на глазу. Хочу от него избавиться. При переносе базы проскакивали вот такие предупреждения:
gbak: WARNING: function STR_LENGTH is not defined
gbak: WARNING: module name or entrypoint could not be found
gbak: WARNING: function REPLACE is not defined
gbak: WARNING: module name or entrypoint could not be found
Думаю это не так страшно. И тем не менее меня она (программа) даже не пускает. Входить в неё надо не пользователем SYSDBA, а специфичным. Какие будут соображения?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 03 авг 2005, 19:56

это ты udf-ы с того сервера на новый не перенес. Программа, вполне может быть, сразу при логине лезет к ним.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 03 авг 2005, 20:42

kdv писал(а):это ты udf-ы с того сервера на новый не перенес. Программа, вполне может быть, сразу при логине лезет к ним.
А я вот обиделся что не приводит точное сообщение и малчу :-D Ну задолбали, право слово. Сиди гадай - то ли он isс4 под этим же именем и ресторил и пытается подсунуть FB, то ли к базе у сервера прав доступа нет, то ли ещё чо...

NT Man
Сообщения: 17
Зарегистрирован: 24 янв 2005, 12:29

Сообщение NT Man » 03 авг 2005, 22:59

kdv писал(а):это ты udf-ы с того сервера на новый не перенес. Программа, вполне может быть, сразу при логине лезет к ним.
Точно в точку!!! Лоханулся я с UDF-ами :) Скопировал и всё пошло. Программа стала пускать пользователей.

На этом наверное тему следовало бы закрыть. Но теперь ещё больше хочется добить эту программу. Теперь уже при работе программы время от времени выскакивают следующие ошибки:

1)
Unsuccessful metadata update
MODIFY RDB$INDECESS failed
no permission for control access to TABLE RDB$ROLES

2)
BIndexedList.AddObject:Duplicate index value

NT Man
Сообщения: 17
Зарегистрирован: 24 янв 2005, 12:29

Сообщение NT Man » 03 авг 2005, 23:01

Merlin писал(а):А я вот обиделся...
Не обижайся уж с этим-то я разобрался :)

NT Man
Сообщения: 17
Зарегистрирован: 24 янв 2005, 12:29

Сообщение NT Man » 05 авг 2005, 07:04

Первую ошибку я победил.
Восстанавливать базу просто надо не из под пользователя SYSDBA, а из под пользователя, который работает с этой прграммой.

Как победить вторую ошибку? Может есть какой-нибудь отладчик?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 05 авг 2005, 10:01

отладчик чего - чужой программы без исходников?

NT Man
Сообщения: 17
Зарегистрирован: 24 янв 2005, 12:29

Сообщение NT Man » 05 авг 2005, 10:13

kdv писал(а):отладчик чего - чужой программы без исходников?
Отладчик, который бы ловил все сообщения об ошибках которые передаёт IB/FB сервер в клиентскую программу.

NT Man
Сообщения: 17
Зарегистрирован: 24 янв 2005, 12:29

Сообщение NT Man » 05 авг 2005, 16:27

Смотрел через BDE-шный SQL Monitor и вот что раскопал...
После запроса:

2595 18:02:40 SQL Execute: INTRBASE - select a.block_ext_id, a.col_id as col_no, a.row_no, a.ext_id as name, a.cell_type, a.data_type, a.max_length, a.required, NUM_PRECISION, RECALC_MODE, RECALC_CASCADE, KEEP_NOT_NULL,a.formula, b.dict_ext_id as dict_id,dict_id as fdict_id,b.Has_History as dict_History, a.dict_col,c.descr as unit_id, a.format_mask as format, a.default_value, a.high_value as max_value, a.low_value as min_value, a.border, a.mergecolumn, a.mergerow, a.align, a.valign, a.bold , a.italic, a.underline, a.font_size, a.wraptext, a.Master_Cell,a.descr, a.group_func, a.weight_cell from (stf_user_form_cells a left outer join stf_user_dictionary_names b on a.Block_Ext_Id = ? and a.form_id = ? and a.Vernum = ? and a.dict_id = b.id) left outer join stf_user_units c on a.unit_id = c.id


В ошибочном (FB 1.5.2) варианте после этого запроса выдаётся много данных вплодь по всплывания описанной ошибки. В рабочем варианте (IB 5.5) выдаётся всего 10 записей:


Ну теперь кто мне скажет почему этот запрос работает по разному?

NT Man
Сообщения: 17
Зарегистрирован: 24 янв 2005, 12:29

Сообщение NT Man » 05 авг 2005, 23:19

Хочу с радостью сообщить что понял в чём дело. Теперь расскажу обо всём по порядку. Для начала я проверил все вьюшки входящие в этот запрос. Здесь прошло всё чисто обе базы выдают одинаковые результаты. Далее вставил предполагаемый ошибочный запрос в SQL редактор и подставил вместо '?' значения из SQL лога. После выполнения передо мной предстала ясная картина. А именно в Firebird неработает вот это
a.Block_Ext_Id = ? and a.form_id = ? and a.Vernum = ?
(он это просто и нагло игнорирует) и ни скобки ни джойны тут не при чём. Ау где же вы девелоперы FB??? Отзовитесь!!! Почему не сделали возможность выборки на джойне как в IB??? Вобщем подправил запрос см. ниже и всё заработало.... Кхм.. т.е. результаты работы с обееми базами совпали. А в программу я это изменение внести немогу :(

Ещё раз молю разработчиков FB, чтоб в следующей версии они добавили такую функциональность в FB.
P.S. Спасибо всем кто мне помогал. А разработчикам FB ложим очередной камень в огород.

NT Man
Сообщения: 17
Зарегистрирован: 24 янв 2005, 12:29

Сообщение NT Man » 07 авг 2005, 18:32

Протестировал на совметимость с этим запросом все доступные IB совметимые сервера (InterBase 7.1, Firebird 1.5.2, Firebird 2 Alpha 3 и Yaffil 1.30.887) из претендентов тест прошёл только Interbase 7.1

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 07 авг 2005, 19:33

отставить кросспостинг. Тебя все равно везде читают одни и те же люди. Ответил на sql.ru.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 08 авг 2005, 10:39

я тебе отвечу, в чем дело - OldParameterOrdering в FB 1.5 включено?

Ответить