0
Это мой код, и я хочу, чтобы удалить все данные таблиц FoxPro именованных в SMS_DATA, я попытался ZAP команду, а также также попытался УДАЛИТЬ ВСЕ и ПАК команду с ИСПОЛЬЗОВАНИИ - имя-таблицы, но он не работает, и дает исключение, что:Как выполнить команды foxpro 2.6 (DOS) из C#, которым необходим эксклюзивный доступ к таблице?
System.Data.OleDb.OleDbException (0x80004005): File must be opened exclusively.
Это мой код:
string USETBL ="EXECSCRIPT([USE SMS_DATA && Open SMS_DATA table])";
string DELETE="EXECSCRIPT([DELETE ALL])";
string PACK="EXECSCRIPT([PACK])";
OleDbConnection con = new OleDbConnection(conStr);
try
{
OleDbCommand cmd = new OleDbCommand(USETBL, con);
OleDbCommand cmd1 = new OleDbCommand(DELETE, con);
OleDbCommand cmd2 = new OleDbCommand(PACK, con);
con.Open();
err.log("connection opened");
cmd.ExecuteNonQuery();
err.log("table in use");
cmd1.ExecuteNonQuery();
err.log("delete executed.");
cmd2.ExecuteNonQuery();
err.log("pack executed.");
con.Close();
}
catch (Exception e)
{
err.log("Exception:-" + e);
}
Спасибо большое, он работал как шарм .... вы делаете мой день ... –
Теперь я заменил команды DELETE и PACK одной командой ZAP, bcoz ее намного быстрее, и нам не нужно использовать две команды для удаления, но спасибо большое .. –
Да, либо будет работать. У ZAP есть соображения, когда триггеры таблицы или базы данных не будут срабатывать, когда они будут с DELETE \ PACK, но я предполагаю, что это не проблема в вашем случае. –