|
|
|
Как выкинуть пользователя, сидящего в базе
|
|||
|---|---|---|---|
|
#18+
Проблема такая: есть многопользовательская база на аксе2000. Нередко надо оперативно подправить формочку, что не позволяется, когда там сидят юзеры. Можно ли их принудительно выкинуть? Существующие темы вроде проглядел, и вариант со служебной таблицей и проверкой по таймеру не очень нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2003, 17:19 |
|
||
|
Как выкинуть пользователя, сидящего в базе
|
|||
|---|---|---|---|
|
#18+
Выдернуть сетевой шнурок... можно еще net sendом всех попросить выйти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2003, 17:23 |
|
||
|
Как выкинуть пользователя, сидящего в базе
|
|||
|---|---|---|---|
|
#18+
Шнурки выдергивать - убегаешься, хотя и так делали А нет сенд не работает, если нет прокладки. Нужно как раз на этот случай. А то народ логинится и уходит... :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2003, 17:34 |
|
||
|
Как выкинуть пользователя, сидящего в базе
|
|||
|---|---|---|---|
|
#18+
Как вариант: а) наваять на winsock.ocx "сервер," открывающийся на каждом запущенном клиенте-базе Аксцесса и слушающем команду. По команде - выход из базы и т.п. НО: где-то тут обсуждались проблемы коммуникаций по винсоку именно через Эксцес (XL и VB - все ок), поэтому стоит сначала попробовать надежность, а потом делать ;))) б) папка (директория ;), лежащая в сети, в нее по надобности записывается файлик username, а запущенный клиент периодически проверяте - если появился файл - читать - отрубиться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2003, 17:41 |
|
||
|
Как выкинуть пользователя, сидящего в базе
|
|||
|---|---|---|---|
|
#18+
То есть насколько я понял, штатных средств Аска нет. Тогда вопрос: как повеситься на глобальный таймер (один для всего applicationа), а то похоже он только для формы.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2003, 17:50 |
|
||
|
Как выкинуть пользователя, сидящего в базе
|
|||
|---|---|---|---|
|
#18+
Форма - заставка (че -нить на заднем плане или скрытое). С таймером, (прочими параметрами текущего сеанса - по необходимости). И с простой такой процедуркой: Private Sub Form_Unload(Cancel As Integer) Application.Quit End Sub чтобы не прихлопнул кто ненароком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2003, 17:55 |
|
||
|
Как выкинуть пользователя, сидящего в базе
|
|||
|---|---|---|---|
|
#18+
Интересная идея. А как сделать, чтобы она не показывалась в списке окон? Кстати, тогда проще сделать Cancel = true. Нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2003, 18:01 |
|
||
|
Как выкинуть пользователя, сидящего в базе
|
|||
|---|---|---|---|
|
#18+
Запустить таймер функциями API. Вот такой модуль добавь в свою базу: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Остается только проблема его запуска. Надо его куда-нибудь рассувать, но тут вариантов масса. 2Alexus12: Кстати идея с клиентом winsock'а в базе мне понравилась.... прикольно. А то скоко не читал все обычно к таймеру скатываются, а тут новенько, интересненько.... это ведь можно только базу по команде с сервера закрывать, но еще за пользователями следить и пакостить, целого трояна наваять мона (чтобы он еще им потом что-нибудь типа VNC закачивал и запускал в тихоря - для получения удаленного доступа админа к своим пользователям ... :) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2003, 18:06 |
|
||
|
Как выкинуть пользователя, сидящего в базе
|
|||
|---|---|---|---|
|
#18+
Вот это прикольно, надо будет попробовать! А lngHandle - это хэндл таймера вроде, а не аппликухи? С запуском у меня проблемы нет, у меня одна форма гарантированно запускается. Нечего если на онлоад поставить? Повторный запуск таймера не критичен? за пользователями следить и пакостить Ба, шаловливые ручки... :-) А убирать за пользователем кто будет... А то ведь он испугается...:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2003, 18:15 |
|
||
|
Как выкинуть пользователя, сидящего в базе
|
|||
|---|---|---|---|
|
#18+
Таймер привязывается к окну. В lngHandle запихни Application.hWndAccessApp и по Access не закроешь он будет действовать. Таймер можно запускать несколько раз (с таким же lngHandle), он просто продолжит свою работу, и потом легко будет убит (с одного раза) через CloseTimer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 10:34 |
|
||
|
Как выкинуть пользователя, сидящего в базе
|
|||
|---|---|---|---|
|
#18+
>Кстати идея с клиентом winsock'а в базе мне понравилась.... прикольно. Тока не с клиентом, а с сервером - он после запуска должен открыть свой порт на прослушивание на каждой машине, запустившей твою базу. >А то скоко не читал все обычно к таймеру скатываются, а тут новенько, интересненько.... это ведь можно только базу по команде с сервера закрывать, но еще за пользователями следить и пакостить, целого трояна наваять мона (чтобы он еще им потом что-нибудь типа VNC закачивал и запускал в тихоря - для получения удаленного доступа админа к своим пользователям ... :) ) наверное, можно - в той же сети, а иначе (из инета) файрвол не пропустит ;))) наверное, что-то для передачи копий экрана и удаленного мувинга мыша можно сделать - чтобы юзер звякнул, когда что-то сломалось - а админ подконнектился и мышом отремонтировал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 11:13 |
|
||
|
Как выкинуть пользователя, сидящего в базе
|
|||
|---|---|---|---|
|
#18+
>>Кстати, тогда проще сделать Cancel = true. Нет? ГЫ! А из приложения выходить - event отключать? Можно, но не "проще". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 12:08 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32255109&tid=1679595]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 332ms |

| 0 / 0 |
