0

テーブル全体をロックする代わりに、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();
        }
4

2 に答える 2

0

ロックしたいレコードに「レコード ポインタ」を置き、パラメータを指定せずに RLOCK() を呼び出すと、レコードはロックされます。

次の一連のコマンドで実行できます。

  SET EXCLUSIVE OFF
  USE table IN 0 ALIAS a_table
  SELECT a_table
  LOCATE FOR sono='12345'
  RLOCK()

これは、LOCATE コマンドが実際に sono='12345' のレコードを見つけることを前提としています。

または、使用できるインデックスがある場合は、SEEK コマンドまたは SEEK() 関数を使用できます。

于 2013-05-02T17:10:38.497 に答える