Рик прав. Ваши настройки Foxpro по умолчанию дают сеансу Foxpro исключительные права на любую таблицу, открытую командой "use".
Когда вы открываете таблицу во время работы приложения VB, вы спотыкаетесь друг о друга.
Я предполагаю, что вы дважды щелкаете файлы DBF в проводнике Windows и открываете их, а не используете команду «использовать» в Foxpro для просмотра таблиц. Если вы хотите сделать это только таким образом, то (в VFP 9) закройте все сеансы, кроме одного из VFP. Перейдите в Инструменты-> Параметры-> вкладка «Данные» и снимите флажок «Открыть монопольно». Теперь закройте этот сеанс. Это сохранит настройки. В следующий раз, когда вы дважды щелкните DBF/DBC, откроются все таблицы с «общим» доступом.
В противном случае, чтобы получить доступ к таблицам из VFP с помощью команды «use», выполните следующие действия:
Для эксклюзивного доступа:
use in 0 exclusive <table-file-path>
Для общего доступа:
use in 0 shared <table-file-path>
Вы также можете указать для него флаг noupdate, чтобы сделать его доступным только для чтения. (Безопасный способ запроса.)
use in 0 exclusive noupdate <table-file-path>
or
use in 0 shared noupdate <table-file-path>
Насколько я понимаю, основная проблема заключается в том, что VB получает «исключительные» права на базу данных и дает сбой, когда у вас открыта таблица (общая или иная).
Однако это больше похоже на проблему синхронизации, чем на проблему Foxpro. Предполагая, что у вас нет доступа или разрешения на переписывание приложения VB, единственная другая альтернатива — найти время, когда основное приложение VB не работает (возможно, поздно ночью?) и запустить запрос Foxpro (. PRG) в планировщике. Запрос может быть скопирован в другой файл, как предложил Алекс.
Команда для запуска программы Foxpro проста:
foxpro <program-name>.prg
Это может быть файл .bat или .cmd, который запускается общим планировщиком.
Однако есть одна загвоздка: всегда лучше скомпилировать .prg из VFP самостоятельно, чем позволить VFP скомпилировать его за вас (что произойдет, если вы этого не сделаете). t перекомпилировать, VFP будет использовать последнюю скомпилированную версию (просто назло вам).
Если вы уже знали об этом, извините за излишество.
Удачи.
person
jetimms
schedule
03.08.2009