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

Вниз

Странная ошибка TPFibDatabase   Найти похожие ветки 

 
yaric   (2004-12-29 12:53) [0]

У меня система постоена в виде множества плагинов, в которые передается из основного модуля данных Handle:TISC_DB_HANDLE.
Во всех плагинах содаются экземпляры класса TPFibDatabase которые через этот коннект и работают. Так вот все было хорошо но при переходе на FibsPlus 5.1 в некорых плагинах начала возникать ошибка при освобождении экземляра TPFibDatabase(формы на которой он лежит) происходит обращение к  function TFIBDatabase.GetBaseLevel: Long; И происходит ошибка. Объяснити что происходит кто сталкивался с этой проблемой.


 
Johnmen ©   (2004-12-29 13:08) [1]

А плагины перекомпилировал ?


 
yaric   (2004-12-29 13:10) [2]

Да все плагины перкомпилил заново


 
yaric   (2004-12-29 13:59) [3]

Ну а почему вообще GetBaseLevel вызывается кто нибуть знает


 
Johnmen ©   (2004-12-29 14:16) [4]

Я бы попробовал проанализировать исходники FIB+...


 
Соловьев ©   (2004-12-29 14:21) [5]

Да все плагины перкомпилил заново

А *.dcu чистил? может попробовать удалить и пересобрать длл-ки?


 
yaric   (2004-12-29 14:35) [6]

Я все попробовал пакет создавал заново все прекомпилировал.
Фибсы перставлял все равно вылетает.
Еще заметил такая фигня в плагинах где потоки используются
может это как то влияет???


 
Johnmen ©   (2004-12-29 14:36) [7]

Влияет. Один поток - одно соединение. Примерно так...


 
yaric   (2004-12-29 14:54) [8]

Да нет у меня в потоках вычисления
никат не связанные с работой в БД


 
yaric   (2004-12-29 15:17) [9]

По моему я разобрался в причине ошибки, но обясните почему такое происходит. А причина следующая:
Я передаю Handle:TISC_DB_HANDLE.
Во всех плагинах содаются экземпляры класса TFibDatabase которые через этот коннект и работают. Так вот если не будет запущена ни одна из транзакций связанных с объектом TFibDatabase внутри плагина т.е. конект не используется плагином активно, то происходит эта ошибка. Если же что то через этот коннект сделать, а следовательно стартонуть и завершить какую нибуть транзакцию  то все нормально - освобождение происходит без проблем. В чем причина такого поведения Fibs-ов?
Заранее спасибо.


 
Johnmen ©   (2004-12-29 15:30) [10]

Не знаю. Но могу утверждать, что работа с БД ВСЕГДА осуществляется в рамках транзакции.
Возможно, что и хендл транзакции надо передавать.....


 
yaric   (2004-12-29 15:42) [11]

Да, зачем я ведь к соединению
могу транзакции цеплять когда угодно. Вот я например внутри плагина это делаю и все работает.


 
yaric   (2004-12-29 15:43) [12]

Ведь соединение уже установлено
и при этом участвовала транзакция которая нас не интересует
она лежит где то там в главном дата модуле. Из которого и происходит подгрузка плагинов.



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

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

Наверх




Память: 0.49 MB
Время: 0.046 c
1-1106046275
Priest
2005-01-18 14:04
2005.01.30
Администрирование COM+


3-1103969668
Russko
2004-12-25 13:14
2005.01.30
table is read only


1-1105960865
Progh
2005-01-17 14:21
2005.01.30
Отграничение прав в TWebBrowser-e


14-1105268110
Kerk
2005-01-09 13:55
2005.01.30
distributed.net


3-1104093610
Константинов
2004-12-26 23:40
2005.01.30
Как сменить пароль ( Vfster Password ) таблицы Paradox?