Aladdinych
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору 1. У меня не IB6 а Firebird 1.0.0.338, но это я думаю не принципиально. 2. Зачем мне нужен доступ к открытым датасетам в основной программе. Идет заполнение данных пользователем, и для автоматизации заполнения по клику на кнопке вызывается внешняя процедура. Из нее, в экранной форме пользователь вводит несколько данных, как правило выбор из списка, и по завершению по кнопке ОК должны обновляться датасеты в основной программе. Всего их пока два (датасета). При этом в первый добавляется одна запись с автозаполнением полей, а во второй могут добавляться, удаляться или модифицироваться записи опять же с автозаполнением полей. Если нельзя передавать на эти датасеты указатели во внешнюю процедуру, то надо как-то синхронизировать их со своими датасетами в этой внешеней процедуре. Мне кажется, что такая задача еще сложнее, и я не очень представляю как ее решать. 3. АВ выскакивает всякий раз, при вызове внешней процедуры. Внури этой процедуры, есть строчка типа datasource1.dataset:=table где datasource1 - компонент на форме внутри внешнего модуля, а table - как раз передаваемый параметр. Если эту строчку закомментировать то АВ исчезает. Добавлено: 4. И в dll и в основной программе первым модулем включен fastsharemem. 5. Основное приложение давно уже создано раньше. Его надо немного доработать так, чтобы за счет подключения внешних модулей можно было дополнять и расширять его его возможности. Использование bpl мне не нравится. Не хочу за приложением таскать кучу стандартных библиотек в виде тех же bpl. Поэтому самый очевидный выход работать с dll. |