Главная страница
    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.036 c
1-1105899083
Ньюб
2005-01-16 21:11
2005.01.30
Доступ к свойствам компонентов


1-1105458355
odessey
2005-01-11 18:45
2005.01.30
коды для принтера


8-1093414139
Axer
2004-08-25 10:08
2005.01.30
Как получить данные из звуковой карты?


1-1106163851
Shamansky
2005-01-19 22:44
2005.01.30
Html страницы в Delphi


4-1102588278
Yuri Btr
2004-12-09 13:31
2005.01.30
Идентификация процесса по Mutex





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