Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Вниз

Странная ошибка 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.031 c
14-1105528663
Subdigger
2005-01-12 14:17
2005.01.30
xp, registry...


1-1106124097
Denmin
2005-01-19 11:41
2005.01.30
Нужна финкция поиска и определения позиции пробела в предложении.


4-1102485170
ORMADA
2004-12-08 08:52
2005.01.30
Icon на WinApi


4-1102961158
Bes
2004-12-13 21:05
2005.01.30
Оповещение основной программы о выгрузке DLL...


4-1102415596
maxistent
2004-12-07 13:33
2005.01.30
Контакты COM-порта...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский