Главная страница
    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.47 MB
Время: 0.039 c
1-1105694776
WhiteGuy
2005-01-14 12:26
2005.01.30
Найти файл


14-1105584757
Ozone
2005-01-13 05:52
2005.01.30
Нужны советы по-поводу книг


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


14-1104945848
4eshka)
2005-01-05 20:24
2005.01.30
ащита программ


1-1105781773
user101
2005-01-15 12:36
2005.01.30
Pchar To String





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский