Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.04.12;
Скачать: CL | DM;

Вниз

Delphi(ADO)+Access: как узнать кто подключен к *.mdb?   Найти похожие ветки 

 
Xmel   (2009-02-25 21:09) [0]

В папке с общим доступом лежит *.mdb, с помощью программы пользователи подключаются и работают с данными в таблицах.
- Как при необходимости определить - кто в данный момент работает с базой (сетевые имена пользователей, например)?
- И можно как-то реализовать принудительное закрытие всех экземпляров приложения работающих с *.mdb?


 
sniknik ©   (2009-02-25 21:36) [1]

> - Как при необходимости определить - кто в данный момент работает с базой (сетевые имена пользователей, например)?
рядом с файлом базы создается файл блокировок... оттуда по моему можно вытащить имя компа и юзера (базы) тех кто в данный момент подключен.

> - И можно как-то реализовать принудительное закрытие всех экземпляров приложения работающих с *.mdb?
а смысл?


 
Xmel   (2009-02-26 07:48) [2]

> sniknik ©   (25.02.09 21:36) [1]
> рядом с файлом базы создается файл блокировок... оттуда
> по моему можно вытащить имя компа и юзера (базы) тех кто
> в данный момент подключен.

Знать бы по-точнее! То, что "файл блокировок" создаётся - я и сам заметил! Но вот бывает срочно нужно копию файла *.mdb, а народ упорно не хочет выходить из программы! Только кивают все головой- мол всё "Ок!"-вышли, а "файл блокировок" как был, так и остался - значит кто-то не вышел! И начинаешь обходить компьютеры - смотреть.

> sniknik ©   (25.02.09 21:36) [1]
> > - И можно как-то реализовать принудительное закрытие всех
> экземпляров приложения работающих с *.mdb?
> а смысл?

Вот, как раз, в связи с вышеизложенным, не хотят сами закрыть программу - сделать это за них! Есть способ через ADO "выбросить" всех из Access (*.mdb)?


 
Palladin ©   (2009-02-26 07:59) [3]

1. Можно прекращать общий доступ
2. А не слишком ли много требуешь от, по сути файл-серверной, СУБД?


 
sniknik ©   (2009-02-26 08:05) [4]

> Знать бы по-точнее!
ну так открой его и глянь внутрь, будешь знать точнее.

> Но вот бывает срочно нужно копию файла *.mdb
ну и сделай копию, программно... т.е. создай пустую базу и скопируй в нее запросами данные. выгонять никого не требуется.

> Есть способ через ADO "выбросить" всех из Access (*.mdb)?
через ADO нет, а так легко, просто вытаскиваешь сетевой шнурок из сервера и ... теряешь какие нибудь данные возможно. впрочем при любом насильственном способе это возможно.


 
Сергей М. ©   (2009-02-26 08:53) [5]


> Xmel   (26.02.09 07:48) [2]


> не хотят сами закрыть программу - сделать это за них


Вообще-то и поколотить могут за это)

Ну а в целом, если программа твоя, что мешает скомандовать ей по сети "закругляйся" ?


 
AndreyV ©   (2009-02-26 08:56) [6]

1. Завести таблици с полем "НеобходимоОтсоедениться", на клиентах провереять его раз в минуту, если выставлен, корректно завершать соединение.

2. Создавать файл "НеобходимоОтсоедениться"

3. На клиентах встроить слушалку чего-либо, посылать соответствующее сообщение.


 
AndreyV ©   (2009-02-26 09:26) [7]

> [6] AndreyV ©   (26.02.09 08:56)
> 1. Завести таблици

таблицу


 
KSergey ©   (2009-02-26 10:44) [8]

> Xmel   (25.02.09 21:09)  
> - Как при необходимости определить - кто в данный момент работает с базой (сетевые имена пользователей, например)?
>
> - И можно как-то реализовать принудительное закрытие всех
> экземпляров приложения работающих с *.mdb?

На компьютере, где лежит МДБ-файл:
Панель управления - Администрирование - Управление компьютером - Общие папки - Открытые папки. Все видно. Не программно, да, но точно знаешь к какой марьванне подойти и настучать.

> - И можно как-то реализовать принудительное закрытие всех  экземпляров приложения работающих с *.mdb?

Можно тут же всех и отрубить (через контекстное меню вроде), только это плохо кончится: ведь программы не смогут корректно закрыть файл БД и дописать в него что закэшировано, например, из-за чего его структура может разрушиться, причем непоправимо. Варианты верной реализации предложены выше.

А бэкапы надо делать темными ночами, по автоматическому расписанию, как я, например :)



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

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

Наверх




Память: 0.49 MB
Время: 0.016 c
15-1233676974
Снеговик-2009
2009-02-03 19:02
2009.04.12
ICQ сдохла! :-))) Я преждал про джаббер...


2-1235327758
mm_ash
2009-02-22 21:35
2009.04.12
Dataset Buffers


15-1234474201
Юрий
2009-02-13 00:30
2009.04.12
С днем рождения ! 13 февраля 2009 пятница


11-1198514617
tim128
2007-12-24 19:43
2009.04.12
Обработка событий под wince


2-1235681523
RustBB
2009-02-26 23:52
2009.04.12
добавить запись в конец массива