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

Вниз

Отключение от БД в finalization (IBX)   Найти похожие ветки 

 
VaS   (2002-11-14 17:11) [0]

Delphi6 UP2, IBX6.03.

В секции finalization делаем TIBDatabase.Connected:=false. Долго пробираясь в глубины IBX :) ,вылетаем при выходе из


IBSQLMonitor.pas: function MonitorHook: IIBSQLMonitorHook;


с 216 ошибкой.
Разрушение других экземпляров этого датамодуля (из разных ниток, кроме главной - из главной разрушения до завершения процесса нет) проходит нормально.


 
VaS   (2002-11-14 17:12) [1]

Забыл уточнить - никаких SQLMonitor-ов в приложении нет.


 
SaS13   (2002-11-14 17:13) [2]

TIBDatabase уже нет в finalization если создавали не в ручную.


 
VaS   (2002-11-14 17:27) [3]

Создавали вручную. Ссылка на датамодуль, содержащий TIBDatabase, содержится в поле объекта, нитевой список (TThreadList) которых уничтожается (при разрушении глобального объекта) в finalization. Owner датамодуля - nil. В момент вызова Connected:=false TIBDatabase жив и здоров (Inspect). Дисконнект - не самоцель :) просто он все равно вызывается в деструкторе TIBDatabase.


 
SaS13   (2002-11-14 17:31) [4]

нитевой список (TThreadList) которых уничтожается (при разрушении глобального объекта) в finalization.
может стоит на destroy нити уничтожать, у меня были проблемы когда поток пытался синхронизироваться с уже убитыми данными


 
VaS   (2002-11-14 17:39) [5]

Дык :) У меня в этом списке - экземпляры датамодулей для каждой нити (реально - 4-5), чтобы выполнить требование - коннект и дисконнект должны производиться в одной нити. Создается датамодуль при первом запросе из данной нити, далее ищем нужный по сохраненному ThreadID. При завершении нити удаляем соответствующий модуль. Все работает нормально. НО. Есть один такой датамодуль, соответствующий главной нити. Вот его то я и разрушал в finalization. Сейчас перенес это дело в OnClose главной формы - все стало отлично :)
Но все же очень интересно, почему происходила та ошибка. Видимо, что-то с gds32.dll...



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

Форум: "Базы";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
14-4596
Ketmar
2002-11-11 12:29
2002.12.02
хочу финдиперцевый значок зеленого цвету!


1-4426
NorthMAn
2002-11-23 13:15
2002.12.02
TTimer


1-4496
AndrewVolkov
2002-11-20 18:36
2002.12.02
---|Ветка была без названия|---


1-4269
StasV
2002-11-21 04:10
2002.12.02
Программа просмотров сайтов. Свой браузер.


6-4544
совсем Новенький
2002-10-01 09:19
2002.12.02
Извините, что надоедаю с вопросом нор всй же!





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