powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Exclusive - вылетает программа
9 сообщений из 9, страница 1 из 1
Exclusive - вылетает программа
    #34385818
Den26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,

Есть задача прочитать данные из dbf файла с которым работает время от времени другая программа и эта программа открывает файл в эксклюзивном режиме, и если в это время я пытаюсь прочитать данные из файла то эта программа вылетает из-за невозможности открыть файл в таком режиме. Исходного когда и возможности изменить эту программу у меня нет, что можно в таком случае сделать чтобы обе программы корректно работали?

Спасибо.
...
Рейтинг: 0 / 0
Exclusive - вылетает программа
    #34385822
kdanylo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zapuskat' v raznoe vremia:) Ili vibrosit' "tu" programmu:)

Ili obrabatyvat' oshibku otkritija tablitsy v "etoy" programme:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
local lnError
lnError =  0 
ON ERROR lnError = ERROR()
use drive:\folder1\TaTablitsa.dbf in  0  shared
IF (lnError >  0 )
messagebox("'Ta' programma otkrila 'tu' tablitsu. Poprobujte zajti popozje.")
QUIT
ENDIF

...
Рейтинг: 0 / 0
Exclusive - вылетает программа
    #34385824
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Den26Здравствуйте,

Есть задача прочитать данные из dbf файла с которым работает время от времени другая программа и эта программа открывает файл в эксклюзивном режиме, и если в это время я пытаюсь прочитать данные из файла то эта программа вылетает из-за невозможности открыть файл в таком режиме. Исходного когда и возможности изменить эту программу у меня нет, что можно в таком случае сделать чтобы обе программы корректно работали?

Спасибо.
А ты его сначала попробуй COPY к себе. Если не получается, то ждать, пока файл отпустят и снова COPY. После того, как COPY получилось - работаешь уже со своей версией, хочешь SHARED, хочешь EXCLUSIVE - никому не помешаешь.
...
Рейтинг: 0 / 0
Exclusive - вылетает программа
    #34385826
Den26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот вот, остается только в разное время запускать, но может так случиться что совпадет запуск и программы вылетит. Нехотелось бы конечно.
Может есть функция проверки что таблица открыта эксклюзивно чтобы сразу за ее закрытием сделать свои дела :) и тогда удастся разминуться во времени :)
...
Рейтинг: 0 / 0
Exclusive - вылетает программа
    #34385827
Den26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kruchinin Pahan
А ты его сначала попробуй COPY к себе. Если не получается, то ждать, пока файл отпустят и снова COPY. После того, как COPY получилось - работаешь уже со своей версией, хочешь SHARED, хочешь EXCLUSIVE - никому не помешаешь.
Файл весит более 50Мб копи не сделаешь часто.
...
Рейтинг: 0 / 0
Exclusive - вылетает программа
    #34385829
Den26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kruchinin Pahan
А ты его сначала попробуй COPY к себе. Если не получается, то ждать, пока файл отпустят и снова COPY. После того, как COPY получилось - работаешь уже со своей версией, хочешь SHARED, хочешь EXCLUSIVE - никому не помешаешь.
А копирование тоже помешает программе открыть таблицу эксклюзивно?
...
Рейтинг: 0 / 0
Exclusive - вылетает программа
    #34385868
Den26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может возможно через winapi прочитать данный файл не блокируя эксклюзивный доступ?
...
Рейтинг: 0 / 0
Exclusive - вылетает программа
    #34386107
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажется, вам нужно следующее:
пусть перед запуском той проги, которая открывает его эксклюзивно, вы запустите батник для копирования этой таблицы в подпапку \COPY\mytable2.dbf
Свою прогу измените так, чтобы при возникновении ошибки (как писал kdanylo ) вы открывали уже mytable2 с алиасом исходной таблицы mytable
Код: plaintext
1.
USE \copy\mytable2 ALIAS mytable 
Правда, вам может потом потребоваться проверка, используется ли оригинальный файл или же копия - тогда DBF() вам в руки
...
Рейтинг: 0 / 0
Exclusive - вылетает программа
    #34386282
Den26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andrey TsКажется, вам нужно следующее:
пусть перед запуском той проги, которая открывает его эксклюзивно, вы запустите батник для копирования этой таблицы в подпапку \COPY\mytable2.dbf
Свою прогу измените так, чтобы при возникновении ошибки (как писал kdanylo ) вы открывали уже mytable2 с алиасом исходной таблицы mytable
Код: plaintext
1.
USE \copy\mytable2 ALIAS mytable 
Правда, вам может потом потребоваться проверка, используется ли оригинальный файл или же копия - тогда DBF() вам в руки
Ну дело не в том чтобы моя программа обрабатывала невозможность открыть файл, это сделать несложно, а в том чтобы чужая программа не вылетела за время работы моей программы.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Exclusive - вылетает программа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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