powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / проверка открытия файла
10 сообщений из 10, страница 1 из 1
проверка открытия файла
    #39262488
данила778
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Необходимо проверить, открыт ли файл access. Если проверять по наличию файла блокировки, то иногда бывают
случаи что файл блокировки после закрытия не удаляется.

Вот нашел другой пример проверки, как думаете, насколько он хорош?
Может есть другие способы решить эту проблему?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub GlosFileAc() 'проверка
Dim lngChanel As Long
On Error Resume Next
    lngChanel = DDEInitiate("Microsoft Access", "C:\dbdb.mdb")
    If Err.Number = 0 Then
        MsgBox "файл открыт"
    Else
        MsgBox "файл закрыт"
    End If
End Sub
...
Рейтинг: 0 / 0
проверка открытия файла
    #39264989
данила778
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго вечера.. Нет вариантов\мнений?
...
Рейтинг: 0 / 0
проверка открытия файла
    #39264999
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да несколько способов есть проверки
1. Попытаться открыть с опцией Exclusive
2. Проверить получением объекта базы:
Код: vbnet
1.
2.
3.
4.
5.
6.
Set appAccess = GetObject("C:\Documents and Settings\Brett\My Documents\Access\BinaryTest.mdb", "Access.Application")
If Err.Number <> 0 Then
  'The database was not open so open it
  Set appAccess = CreateObject("Access.Application")
  Err.Clear
End If


3. Попытаться просто открыть файл:
Код: vbnet
1.
2.
Open dbFile For Binary Access Read Write Shared As fh
dbOpen = (Err.Number > 0)


Этого дожно быть достаточно
...
Рейтинг: 0 / 0
проверка открытия файла
    #39265520
Mabiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень специфичный вариант - посадить на таймер постоянную перезапись текущего времени в какое-то отдельное поле. Если время записи превышено - база не работает.
...
Рейтинг: 0 / 0
проверка открытия файла
    #39265582
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MabizОчень специфичный вариант - посадить на таймер постоянную перезапись текущего времени в какое-то отдельное поле. Если время записи превышено - база не работает.
Вот таймером нужно пользоваться с большой осторожностью. Акцесс не может полностью распараллеливать процессы, включая таймер. Будет подтормаживать все остальное, особенно пересчет в формах/отчетах/запросах
...
Рейтинг: 0 / 0
проверка открытия файла
    #39266099
Данила778
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за комментарии..

А мой пример имеет право на жизнь? :)
...
Рейтинг: 0 / 0
проверка открытия файла
    #39266197
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данила778,

Ну так попробуйте и нам расскажите :) Способ довольно оригинальный, по идее должен работать.
...
Рейтинг: 0 / 0
проверка открытия файла
    #39267129
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данила778А мой пример имеет право на жизнь? :)

вот это

данила778Добрый день! Необходимо проверить, открыт ли файл access. Если проверять по наличию файла блокировки, то иногда бывают
случаи что файл блокировки после закрытия не удаляется.

тоже имеет право на жизнь: файл блокировки (ldb) обычно остается при аварийном завершении приложения, обойти это можно так:
- в приложении делаем одну связанную таблицу на проверяемую БД
- в форме размещаем невидимый список без источника данных и кнопку проверки монопольности
- в событии нажатии кнопки:
1. Списку делаем источник данных связанную таблицу (+ Requery)
2. Списку делаем источник данных "" (+ Requery)
3. Проверяем наличие ldb
В этом случае пункт 1 мертвый ldb сделает живым (или создаст новый или использует рабочий совместный), пункт 2 закроет ldb при условии отсутствия подключения других клиентов.
...
Рейтинг: 0 / 0
проверка открытия файла
    #39267157
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
данила778...Если проверять по наличию файла блокировки, то иногда бывают
случаи что файл блокировки после закрытия не удаляется...Более того, науке известны случаи? когда файл блокировок не создаётся... :)

А цель то какая? Проверить и не допустить повторного открытия или проверить наличие других пользователей?

1. WMI или Win32 API
2. Получить список юзеров, которые совершают одновременное чтение базы
...
Рейтинг: 0 / 0
проверка открытия файла
    #39267159
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправил ссылку...
Панургданила778...Если проверять по наличию файла блокировки, то иногда бывают
случаи что файл блокировки после закрытия не удаляется...Более того, науке известны случаи, когда файл блокировок не создаётся... :)

А цель то какая? Проверить и не допустить повторного открытия или проверить наличие других пользователей?

1. WMI или Win32 API
2. Получить список юзеров, которые совершают одновременное чтение базы
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / проверка открытия файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]