0
我試圖通過OleDbCommand在FoxPro表上執行RLOCK()命令(記錄鎖),但我需要知道鎖是否成功。在FoxPro中,RLOCK()返回.T。或.F。以表明它是否成功。需要通過OLEDBCommand的FoxPro RLOCK()命令的結果
如何通過OleDbCommand獲取結果?
這裏是我當前的代碼:
using(var conn = new OleDbConnection(...)) //connection string with VFPOLEDB provider
{
conn.Open();
using(var comm = new OleDbCommand())
{
string cText = @"[use table in 0] + chr(13) + "
+ @"[RLOCK(table)]";
comm.Connection = conn;
comm.CommandText = "Execute(" + cText + ")";
var result = comm.ExecuteNonQuery();
Consle.WriteLine(result);
comm.Dispose();
}
conn.Close();
conn.Dispose();
}
現在,我總是取回一個1(真),即使鎖應該不會發生由於該記錄已被鎖定由別人。
感謝您的幫助。
很好的澄清NonQuery與executeScalar調用()的用戶。 – DRapp
非常感謝。出於某種原因,我的印象是ExecuteScalar()必須與實際的選擇,更新,插入或刪除命令一起使用。這正是我所需要的 - 謝謝! – RHarris
順便說一下,這個腳本在我的環境中有很大的價值。我有兩個系統運行自動化進程,如果其他進程正在運行,則需要停止執行。處理這個問題的最簡單方法是讓每個系統鎖定一個控制記錄,在記錄中放置一個代碼並解鎖記錄。鎖使系統不會同時更新表。 – RHarris