【发布时间】:2013-05-02 16:39:46
【问题描述】:
如何通过 OLEDB 锁定具有 sono='12345' 的 foxpro 表,而不是锁定整个表?使用 rlock(),我可以按数字锁定记录,但不知道如何使用过滤器锁定记录。
这是我如何通过记录号锁定表
string vfp = "[ SET EXCLUSIVE OFF ] + chr(13) + ";
vfp += " [ USE table IN 0 ALIAS a_table ] + chr(13) +";
vfp += " [ LOCK('1,2,3,4', 'a_table ') ]";
dbConn.Open();
using (OleDbCommand cmd = dbConn.CreateCommand())
{
cmd.CommandText = "Exec( " + vfp + " ) ";
cmd.ExecuteNonQuery();
}
【问题讨论】:
-
您通过 OleDB 锁定记录的目的是什么。该锁仅在连接期间可用,如果您在完成您尝试做的任何事情之前断开连接,无论如何您都将失去锁。 Jerry 的选项似乎最接近多记录锁定的解决方案。然而,看起来你会做更多的事情,并最终尝试构建一个通过 ExecScript() 调用运行的整个过程。我不一定认为这是可行的。