Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.27;
Скачать: 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 вся ветка

Текущий архив: 2003.01.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
9-86607
-=Prior=-
2002-07-31 11:23
2003.01.27
Мастаки ответте мию сию!


14-87081
vajo
2003-01-08 08:09
2003.01.27
HDD


3-86625
VID
2003-01-10 01:21
2003.01.27
DBGridEh: подсветка ячейки(не строки!)


1-86821
Кен
2003-01-18 04:44
2003.01.27
Как проще в массиве найти минимальное и максимальное значение ?


14-87044
Jim
2003-01-10 23:55
2003.01.27
Строка между записями