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