Как перенести пользователей из IB 5.5 в FB 1.5.2?
Модераторы: kdv, Alexey Kovyazin
Как перенести пользователей из IB 5.5 в FB 1.5.2?
Вообще возможно ли такое?
Если возможно, то опишите плиз технологию.
Заранее спасибо.
Если возможно, то опишите плиз технологию.
Заранее спасибо.
прочитай www.ibase.ru/devinfo/sqlroles.htm
в ib 5.x юзеры хранятся в isc4.gdb. в FB 1.5 - в securify.fdb. дальше сам разберешься.
в ib 5.x юзеры хранятся в isc4.gdb. в FB 1.5 - в securify.fdb. дальше сам разберешься.
Re: Как перенести пользователей из IB 5.5 в FB 1.5.2?
База с юзерами - такая же база, как и любая другая. Правила миграции едины - бакап под старой версией, рестор под новой.NT Man писал(а):Вообще возможно ли такое?
Если возможно, то опишите плиз технологию.
Заранее спасибо.
Почти получилось 
Забекапил 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, а специфичным. Какие будут соображения?

Забекапил 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 писал(а):это ты udf-ы с того сервера на новый не перенес. Программа, вполне может быть, сразу при логине лезет к ним.

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

На этом наверное тему следовало бы закрыть. Но теперь ещё больше хочется добить эту программу. Теперь уже при работе программы время от времени выскакивают следующие ошибки:
1)
Unsuccessful metadata update
MODIFY RDB$INDECESS failed
no permission for control access to TABLE RDB$ROLES
2)
BIndexedList.AddObject:Duplicate index value
Смотрел через 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 записей:
Ну теперь кто мне скажет почему этот запрос работает по разному?
После запроса:
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 записей:
Ну теперь кто мне скажет почему этот запрос работает по разному?
Хочу с радостью сообщить что понял в чём дело. Теперь расскажу обо всём по порядку. Для начала я проверил все вьюшки входящие в этот запрос. Здесь прошло всё чисто обе базы выдают одинаковые результаты. Далее вставил предполагаемый ошибочный запрос в SQL редактор и подставил вместо '?' значения из SQL лога. После выполнения передо мной предстала ясная картина. А именно в Firebird неработает вот это

Ещё раз молю разработчиков FB, чтоб в следующей версии они добавили такую функциональность в FB.
P.S. Спасибо всем кто мне помогал. А разработчикам FB ложим очередной камень в огород.
(он это просто и нагло игнорирует) и ни скобки ни джойны тут не при чём. Ау где же вы девелоперы FB??? Отзовитесь!!! Почему не сделали возможность выборки на джойне как в IB??? Вобщем подправил запрос см. ниже и всё заработало.... Кхм.. т.е. результаты работы с обееми базами совпали. А в программу я это изменение внести немогуa.Block_Ext_Id = ? and a.form_id = ? and a.Vernum = ?

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