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

Вниз

Блокировки файла   Найти похожие ветки 

 
Дмитрий С ©   (2009-07-27 15:14) [0]

Есть файл, который используется двумя приложениями. Одно непосредственно на компьютере, другое через сеть. Может быть запущено только одно из приложений.
Вопрос: есть способ организовать безопасную запись в этот файл одному из приложений?
Заблокировать к примеру, считал то что нужно или записал, разблокировал.
Если файл уже заблокирован другим приложением - ждет.


 
Anatoly Podgoretsky ©   (2009-07-27 15:32) [1]

> Дмитрий С  (27.07.2009 15:14:00)  [0]

Способ есть.


 
Inovet ©   (2009-07-27 15:50) [2]

Если одновременно только одно приложение может иметь доступ, то и открывать с соответсвующим флагом.


 
TIF ©   (2009-07-27 15:54) [3]

OpenFile, OF_SHARE_EXCLUSIVE?
Тут есть пример применения:
http://www.delphimaster.ru/articles/saveparam/index.html


 
TIF ©   (2009-07-27 16:12) [4]

Можно и FileOpen воспользоваться...

FileOpen
Открывает существующий FileName файл в режиме Mode. Значение, возвращаемое в случае успеха, — дескриптор открытого файла. В противном случае — код ошибки DOS.

Допустимы следующие режимы открытия файлов:

Режимы
Открыть только для чтения:
fmOpenRead            $0000
Открыть только для записи:
fmOpenWrite           $0001
Открыть для чтения и записи:
fmOpenReadWrite       $0002
Обеспечить совместимость со старой моделью доступа к файлам:
fmShareCompat       $0000

Запретить другим доступ к файлу:
fmShareExclusive      $0010
Запретить другим запись в файл:
fmShareDenyWrite      $0020.
Запретить другим чтение файла:
fmShareDenyRead       $0030
Разрешить другим все виды доступа:
fmShareDenyNone       $0040


 
Дмитрий С ©   (2009-07-27 17:16) [5]

А ведь верно, файл же можно не держать постоянно открытым, эта мысль пришла мне уже после поста на фррум.

Кстати, а как аксессовые базы решают задачу совместного смешанного доступа к файлу базы?

Пс спасибо всем кто ответил:)


 
Игорь Шевченко ©   (2009-07-27 17:46) [6]


> Кстати, а как аксессовые базы решают задачу совместного
> смешанного доступа к файлу базы?


блокировки ставят, очевидно. И не только аксессовые, а практически любые файловые (безсерверные)


 
Inovet ©   (2009-07-27 17:54) [7]

> [5] Дмитрий С ©   (27.07.09 17:16)
> А ведь верно, файл же можно не держать постоянно открытым,
> эта мысль пришла мне уже после поста на фррум.

Тогда выходит допустимо два приложения запускать.

> Кстати, а как аксессовые базы решают задачу совместного
> смешанного доступа к файлу базы?

Все режимы перечислены выше. Плюс LockFile(), UnlockFile() позволяют получить отменить эксклюзивный доступ к участку.



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
2-1248444020
martb1n
2009-07-24 18:00
2009.09.27
Перехват и эмулирование нажатия клавиш


3-1227448685
otan
2008-11-23 16:58
2009.09.27
Заливка в excell данных из adotable


15-1248920438
Skyle
2009-07-30 06:20
2009.09.27
VBScript, куда делся класс?


2-1247384462
djkondakov
2009-07-12 11:41
2009.09.27
Узнать количество иконок в dll


15-1248467648
Германн
2009-07-25 00:34
2009.09.27
Успеют или не успеют к строку в этом году?