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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.026 c
4-87191
Mantic0re
2002-12-11 15:30
2003.01.27
Как раскрасить элементы окна?


8-86966
Asderg
2002-10-08 08:25
2003.01.27
как сделать из double вычислений вычисления с фикс точкой.


1-86897
Max(drugoy)
2003-01-16 12:37
2003.01.27
TreeView


14-87086
Дмитрий К.К.
2003-01-09 06:05
2003.01.27
Именинники 9 января


1-86856
DeMoN-777
2003-01-19 16:36
2003.01.27
Поиск





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