Форум: "Базы";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
ВнизКак совместить сессию и TDataBase потока с bdeAPI? Найти похожие ветки
← →
Aleksandr. (2004-08-27 15:41) [0]Согласно правилам, каждый поток должен для работы с БДЕ юзать свой TSession и свой TDataBase. Но у меня в этих потоках истчо и выполняются функции BDE типа dbiDoRestructure и dbiPackTable, для которых функция dbiOpenDataBase наверняка ведь возвращает какой-то свой хэндл и сессию, не совпадающие с VCL-овскими. А как их совместить?
← →
clickmaker © (2004-08-27 15:50) [1]TSession.Handle
TDatabase.Handle
← →
Aleksandr. (2004-08-27 15:59) [2]Понял, спасибо.
← →
Aleksandr. (2004-08-27 16:15) [3]Не, не понял.
Вот функция DbiGetLDName для получения языка таблицы, у нее в параметрах вообще не юзается никакой хендл. А ведь наверняка при ее вызове она в нарушение правила каку-то свою сессию и свою hDBIDB откроет...
← →
clickmaker © (2004-08-27 16:29) [4]
> [3] Aleksandr. (27.08.04 16:15)
а что тебе это так волнует? пусть открывает на здоровье
← →
Aleksandr. (2004-08-27 16:51) [5]clickmaker © :
Так а если она через системную сессию полезет? Из другого-то потока?
← →
clickmaker © (2004-08-27 17:52) [6]
> [5] Aleksandr. (27.08.04 16:51)
Дык а в чем проблема-то? Не срабатывает функция, что-ли?
← →
Aleksandr. (2004-08-27 18:30) [7]clickmaker © :
Проблема в том, что поток вешается в системе (и никакими ТерминатеТреад не снимается), если внутри него работа с БДЕ проводится не через собственные ДатаБазе и Сессион. В какой-то гнусный момент происходит сбой БДЕ и все - до свидания.
← →
clickmaker © (2004-08-27 18:48) [8]
> [7] Aleksandr. (27.08.04 18:30)
а если DbiInit вызвать в этом потоке?
← →
Aleksandr. (2004-08-27 19:34) [9]Не помогает.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.032 c