Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

В чем проблема обращения к TPFibDataBase по указателю в Dll?   Найти похожие ветки 

 
Aleksandr.   (2005-08-08 15:40) [0]

Программа использует embedded FireBird, поэтому TPFibDataBase в ней для одновременных коннектов может быть только одна. Функционал, использующий соединения к базе, разделен на две части - непосредственно код программы и dll. В dll при вызове функции инициализации ее внутреннего объекта передается Pointer PFIBDataBase, размещенной на DataModule программы, а в констракторе объекта, соответственно, приводится к его внутреннему свойству обратно ( FDB:=TPFIBDataBase(DBPointer); ).
Кроме того, на DataModule программы есть две TPFIBTransaction, у которых FIBDataBase установлена в DefaultDataBase, а у FIBDataBase эти транзакции установлены в DefaultTransaction и DefaultUpdateTransaction. У внутреннего объекта dll есть свои две аналогичные транзакции (в дефолты PFIBDataBase они не устанавливаются, просто назначаются соответствующим свойствам объектам TPFIBQuery и TPFIBDataSet). И вот наблюдается непонятная картина: при первом вызове функций библиотеки все работает отлично, а при втором начинают вылетать AccessViolation при попытке вызовов типа FDB.GetTableNames, хотя трассировка показывает наличие нормальных объектов (не уничтоженных, судя по тому, что их свойства не Inaccessible value). В чем причина такого поведения переданного по указателю компонента? Если FDB создается своя внутри библиотеки, то проблем не возникает (это для тех, кто может посчитать, что ошибка в коде обращения к FDB).


 
Виталий Панасенко   (2005-08-08 17:47) [1]

Для вызова из DLL нужно использовать УДАЛЕННЫЙ доступ..Точнее, формат подключения..Не DataBaseName=C:\db.FDB,а DataBaseName=LOCALHOST:\c:db.FDB...



Страницы: 1 вся ветка

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
2-1123677426
DeepProg
2005-08-10 16:37
2005.09.18
ADO. Parameters.


14-1124745705
Piter
2005-08-23 01:21
2005.09.18
Прохождение Morrowind за 7,5 минут...


14-1125072205
Cyberdemon
2005-08-26 20:03
2005.09.18
Это нормально что ФАК не работает и ...


6-1117186897
Ильичев С.А.
2005-05-27 13:41
2005.09.18
Status Bar Internet Explorer


14-1124558136
TUser
2005-08-20 21:15
2005.09.18
Прошу совета по удобочитаемости текста.