|
|
|
Winsoсk control вешает Access
|
|||
|---|---|---|---|
|
#18+
Наверное, не новая идея, но все же. Лирическое отступление: Со временем базы мдб растут вместе с числом пользователей, и многие операции замедляются до неприемлемого уровня. Решить (снизить остроту) проблему можно разными способами: пересмотр схемы данных, архивация, репликация, переход на клиент-серверную архитектуру, терминальный доступ и т.д. Все они требуют значительных временнЫх или(и) денежных затрат. Где-то читал, что народ умудряется использовать даже MSSQL сервер как прослойку для имитации клиент-серверной технологии в Access (mdb-mssql-mdb). А теперь по делу: Решил реализовать такую штуку. На сервере запускается Форма из mdb которая на основе Winsock контрола «слушает» определенный порт и обрабатывает текстовые сообщения (запросы) приходящие через от клиентов. На клиентах юзается тот-же контрол. В сообщениях клиент, например, может указывать чистый SQL код, или просто команду типа «выполнить процедуру «проц1» с параметрами а1,а2,а3». Внимание вопросы: 1. Юзал несколько примеров (из инета и MSDN) - во всех у меня зависает Access после того как пытаюсь закрыть соединение (Close) или просто форму. Причем в Access начинает жрать 99% процессорного времени. (Глюк наблюдается для протокола TSP, примеры для UDP вроде не глючат) 2. Кто ковырялся в этом направлении, если смысл в такой идее или оно будет глючить по жизни и сможет ли работать несколько юзеров одновременно (как реализовать)? И вообще у кого есть полный рабочий код (пример) с этими Winsock controls в Access? п.с. DoEvens-ы вставлял через строчку – не помогает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2004, 19:17:04 |
|
||
|
Winsoсk control вешает Access
|
|||
|---|---|---|---|
|
#18+
(большого опыта нет, но) DoEvents в общем не причем. С винсоком "обычно" больших проблем нет. 1) что за ось 2) акцесс 3) хто виснет - серверная сторона или клиент тоже? до опыта - возможно, что контрол в момент закрытия в "неправильном состоянии" - типа буфер данных не выбран. либо незакрыты "перенаправленные" соединения PS выложил бы "макет", завтра ввечеру может и глянул бы... (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2004, 23:36:38 |
|
||
|
Winsoсk control вешает Access
|
|||
|---|---|---|---|
|
#18+
Попытаюсь присоединить пример, он сделан по образцу из MSDN. В примере 2 формы: клиент и сервер. После установки соединения между ними обмен данными происходит нормально, но при попытке закрыть любую из форм Access "встает колом"(хотя иногда отвисает). В коде почему-то не вызывается метод "close" (сохранил оригинальный синтаксис), но все мои попытки вставить его не изменяют ситуации. п.с. WinXP SP1 ,Access XP, (кстати, стоит Outpost Firewall) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 12:04:55 |
|
||
|
Winsoсk control вешает Access
|
|||
|---|---|---|---|
|
#18+
Кто будет тестировать, не забудте поменять IP в коде клиента на свой Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 12:06:40 |
|
||
|
Winsoсk control вешает Access
|
|||
|---|---|---|---|
|
#18+
пока кажется, что это специфически XP-ная проблема. попробую хоть что-нибудь сказать ввечеру. пока, навскидку - лезть надо примерно сюда. http://www.mvps.org/sramesh2k/winsock.htm однако осторожнее!!! Прежде всего ОБЯЗАТЕЛЬНО создай контрольную точку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 16:49:16 |
|
||
|
Winsoсk control вешает Access
|
|||
|---|---|---|---|
|
#18+
Спасибо, стча попробую, а заодно и на Win98 компе попробую примерчик отработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 17:10:07 |
|
||
|
Winsoсk control вешает Access
|
|||
|---|---|---|---|
|
#18+
На 98-ых такиеже симптомы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 17:51:09 |
|
||
|
Winsoсk control вешает Access
|
|||
|---|---|---|---|
|
#18+
Приношу, какие могу к подобному случаю извинения. Радует, что выражения лица моего нелепого не видать… Помню, что было что-то, а где не знаю… Хорошо - какракули собственные нашлись трехлетней давности, а то бы и не вспомнил, и не догадался, о чем речь. Причина зависания состоит в том, что остается необработанным событие закрытия парного контрола. Например – сервер закрывает соединение (или наоборот). Контрол клиента транслирует в свою форму информацию о потере соединения в виде события Close. В ответ на него НЕОБХОДИМО дать команду закрытия для клиентского контрола. Если разрыв инициируется «клиентом», на «сервере происходят» симметричные действия. Прикладываю каракули. Тоже откуда-то из msdn с высунутым языком срисовывал. Только вот оказывается - напрочь все забыл, как кого звали. ((((ж ЗЫ За «дизайн» не стрелять. Я тама «состояния» изучал… (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2004, 00:24:32 |
|
||
|
Winsoсk control вешает Access
|
|||
|---|---|---|---|
|
#18+
во как, а приклад то и забыл... (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2004, 00:25:39 |
|
||
|
Winsoсk control вешает Access
|
|||
|---|---|---|---|
|
#18+
2 N_A вот еще подумал - не шибко хорошо называть VBA проект именем "проекта"/класса использованного в нем же - не шибко ето... Еще раз пардону за чумату малую... (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2004, 00:28:09 |
|
||
|
Winsoсk control вешает Access
|
|||
|---|---|---|---|
|
#18+
Грамадное спасибо! Самое удивительное, что аналогичный пример с 3 контролами у меня тоже глючил, надо срочно карму подправлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 10:23:04 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32670589&tid=1672124]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 318ms |

| 0 / 0 |
