-1
在開始修改記錄之前是否有辦法鎖定一條記錄?在開始修改記錄之前是否有辦法鎖定一條記錄?
string stOpenConn = new FbConnectionStringBuilder {
Database = stPathFilename,
UserID = stUserID,
Password = stPassword,
ServerType = FbServerType.Embedded,
ClientLibrary = stCLIENT_LIBRARY
}.ToString();
try {
using(FbConnection fbConn = new FbConnection(stOpenConn)) {
fbConn.Open();
string stCmd = "UPDATE " + stTableName + " SET " + liststFieldNamesNoKeyID[0] + " = @p0";
for (int iii = 1; iii < liststFieldNamesNoKeyID.Count(); iii++)
stCmd += ", " + liststFieldNamesNoKeyID[iii] + " = @p" + iii.ToString();
stCmd += " WHERE" + stFieldKeyID + "= @p" + liststFieldNamesNoKeyID.Count().ToString();
FbTransaction fbTransaction = fbConn.BeginTransaction();
using (FbCommand fbCmd = new FbCommand(stCmd, fbConn, fbTransaction)) {
for (int iii = 0; iii < liststFieldNamesNoKeyID.Count(); iii++) {
string stPlaceHolder = "@p" + (iii).ToString();
string stValue = liststNewValuesNoKeyID[iii];
fbCmd.Parameters.AddWithValue(stPlaceHolder, stValue);
}
int iKeyID = Convert.ToInt32(stKeyID);
fbCmd.Parameters.AddWithValue("@p" + liststFieldNamesNoKeyID.Count().ToString(), iKeyID);
fbCmd.ExecuteNonQuery();
fbTransaction.Commit();
}//using
}//using
}//try
然後修改後發佈完成?
我認爲記錄鎖定發生在連接打開後...在BeginTransaction之前...並在fbTransaction.Commit之後釋放記錄鎖定。
這是交易的目的。你想達到什麼目的? –
目的是讓兩個人同時更改相同的記錄。根據您的評論,Mark Rotteveel看來,交易鎖定了記錄。在這篇文章之前,我曾經進行過互聯網搜索......沒有看到任何將交易鎖定在記錄上的事情。感謝您的澄清! – ttom
如果更新,則另一個事務不能更新該記錄,而第一個事務尚未提交。 –