Вниз
Скачать: CL | DM;

Midas-DComConnection   Найти похожие ветки 

← →
bkv   (2003-01-10 10:43) [0]

Недавно при написании сервера приложения MIDAS я столкнулся с проблемой: не как не хотел запускаться второй экземпляр клиента.
Использовал TDComConnection.
Первый экземпляр клиента запускается и производит соединения с Сервером автоматизации без проблем. Сервер автоматизации при первом обращении как положенно запускается- всё нормально.
Запускаю клиентское приложение еще раз- ошибка:
мол типа не уникальное имя в данном контексте, интерфейс не поддерживается. т.е Соединениу TDComConnection c сервером не происходит если сервер уже имеет хотябы одно активное соединение.
Причем буквально 20мин назад все работало Ок.
Повозившись, я обнаружил следующюю вещь: На сервере для доступа к БД я Использовал BDE - TDatabase. Так вот, если я компилирую сервер с TDatabase.Connected= true то к серверу подсоединяется не более 1 клиента, остальные попытки вызывают exception.
Если TDatabase не подключен к БД на этапе компилирования, то
все клиентские соединения проходят без проблем.
В чем тут дело я так и не понял.
Кто-нибудь сталкивался с такой ситуацией?


← →
OlegE ©   (2003-01-10 10:51) [1]

Нужно использовать TSession.


← →
Romkin ©   (2003-01-10 10:57) [2]

Если модель потоков сервера не tmSingle, в каждом TRemoteDataModule должны находится TSession & TDatabase, причем у TSession AutoSessionName должно быть True.
Связано это с тем, что на каждое клиентское соединение создается свой экземпляр модуля данных, и в отдельном потоке.
При этом BDE не потокобезопасна, разделение по потокам должно обеспечиваться с помощью TSession, и AutoSessionName просто обеспечивает уникальные имена сессий (SessionName), блокировки проводятся именно по ним
PS Developers Guide рекомендую все-таки почитать


← →
bkv   (2003-01-10 11:04) [3]

Понятно, спасибо.
И еще вопрос:
Что лучше использовать для MIDAS : BDE, ADO или dbExpress?


← →
Romkin ©   (2003-01-10 11:33) [4]

А это ему пофиг :-)) разница, в том, что иногда приходится выбирать между значениями ResolveToDataset
BDE - Это немного устарело уже, да и громоздко
ADO - необходимо ставить при поставке (так же, как BDE)
dbExpress - новая технология, причем приспособленная именно к MIDAS, обычно работа идет через TClientDataSet. Легко ставится - 3 dll зарегистрировать через regsvr32, что обычно любой инсталлятор может.
А так - все зависит от того, к какой БД подсоединяешься, и от личных пристрастий.
Переходить тоже достаточно легко на разные соединения, правда, особенности тоже есть



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
3-86654
GeRon
2003-01-08 09:06
2003.01.27
Отображение поля Boolean в DBGrid


3-86705
Карелин Артем
2003-01-09 15:02
2003.01.27
Message: Cannot create shared resource. (Windows error 5)


1-86790
Тень
2003-01-15 17:08
2003.01.27
Разметка в QReport ???


1-86943
TTCustomDelphiMaster
2003-01-16 23:47
2003.01.27
Max of Currency


14-87077
kostya2000
2003-01-08 19:43
2003.01.27
Какая ОС вам больше всего нравится? Почему?




   Наверх