Forms. Как использовать библиотеку не из рабочего каталога?

Zergling
Дата: 13.06.2006 16:51:05
http://sql.ru/forum/actualthread.aspx?tid=302950

Возникла необходимость для одной конкретной формы некоторой системы
использовать библиотеку более ранней версии, чем для других форм.
Сделал подкаталог. Скинул в него библиотку ранней версии(2) и основную форму.
Во временной форме один тригер -
Запоминаю текущий рабочий каталог. Задаю новый рабочий каталог.
Вызываю Основную форму. После закрытия временной формы возвращаю
старый рабочий каталог.

-->Рабочий каталог
| Формы системы.
| Библиотеки 1
|
| Временная форма
---->Подкаталог
| Основная форма
| Библиотеки 2
|
|

Не работает. Есть подозрения, что Основная форма все равно цепляет
библиотеку1, т.к. если в рабочий каталог выложить вместо 1 библиотеку 2
все работает на ура.
Подскажите пожалуйста что не так?
Sergey_Evdokimov
Дата: 13.06.2006 17:17:32
Если совру - гуру меня поправят, Да прибудет с ними Сила.. ё..
Каталог pll указываеца в реестре, параметр FORMSXX_PATH. Изменение рабочего каталога ни к чему не приведет.
Zergling
Дата: 13.06.2006 17:29:34
О как!!!
Sergey_Evdokimov, спасибо.
А как в таком случае можно подменить библиотки?
Sergey_Evdokimov
Дата: 13.06.2006 17:44:55
Zergling
А как подменить библиотки?
Хм.. Я пытался как то обдумать такую задачу. Ничего обнадеживающего не придумал. В двухзвенке можно попробовать скопировать библиотку в локальную папку юзера, прописав перед этим ее в реестр. Дальше подменять ее заменой самого файла. Потому как менять что-либо в реестре без перезапуска клиентской проги ИМХО бессмысленно. Короче - гемморррой..
Вот такие вот блинблиотки в формс... :)
Zergling
Дата: 13.06.2006 17:48:45
Sergey_Evdokimov,
а можно переименовать библиотеку?
Ivan Rishko
Дата: 13.06.2006 18:01:23
Переименовать библиотеку можно, но Вам это поможет только в том случае, если Вы можете изменять форму.

Назовите ее как библиотека_old.pll и переподключите в форме. Должно работать.
Zergling
Дата: 13.06.2006 18:10:01
Ivan Rishko
не выходит каменный цветок. Форму менять могу. Но при простом переименовании библиотеки возникает ошибка

40734 - внутренняя ошибка PL/sql.

А если тупо заменить внутри библиотеки текстовым редактором все
старые имена на новые, даже не могу приатачить к форме

не могу открыть файл для использования как библиотеку pl/sql
Ivan Rishko
Дата: 13.06.2006 18:36:46
Может я чего недопоняло но у меня проходит.

1. Меняем:
lib.pll на lib_old.pll
lib.plx на lib_old.plx (если есть)
(новая lib.pll/plx тоже должна присутствовать, для других форм)

2. Открываем форму в Forms Builder. Делаем деатач для lib.pll и атач для lib_old.pll. Компилируем и сохраняем форму.

Обе библиотеки в одном каталоге, просто с разными именами.

Zergling

А если тупо заменить внутри библиотеки текстовым редактором все
старые имена на новые, даже не могу приатачить к форме


Я не очень понял где об чем это, вроде при вызове процедур из библиотеки не используется имя библиотеки. А внутри библиотеки тем более.

автор

40734 - внутренняя ошибка PL/sql.


Когда вылетает ошибка, при компиляции формы или при запуске?