Вы не говорите, на каком языке вы это делаете, но здесь мы go в C#. Тот же подход должен работать на любом языке.
Вам необходимо открыть DBF под псевдонимом, и вы должны иметь возможность отправлять несколько команд через OLEDB.
Это должно работать.
* -- Open the dbf in the first available work area under the alias 'param'.
* -- Now you don't have to worry about the zeroes.
OleDbCommand myCommand = new OleDbCommand(@"execscript([use 'C:\TEMP\0016_PARAM.DBF' in 0 alias param])", myConnection);
var result = myExecuteNonQuery();
* -- Now do the update, referring to the alias, not the DBF filename.
myCommand = new OleDbCommand(@"execscript([update param set param.value='new' where id='some id'])", myConnection);
result = myCommand.ExecuteNonQuery();
Что касается квадратных скобок, Visual FoxPro имеет три разделителя строк по умолчанию, а именно обычные одинарные и двойные кавычки, но также квадратные скобки.
Таким образом, мы используем двойные кавычки для строки C#. Команде Visual Foxpro, которую мы запускаем через ExecScript, также нужны кавычки, вокруг 'new' и 'some id', поэтому используются одинарные кавычки. Но нам нужно передать эту команду в Execscript в виде строки, чтобы строка использовала скобки.