dotConnect for Oracle Can lock table or record?
Posted: Wed 13 Apr 2011 08:21
dotConnect for Oracle Can lock table or record?
How to do?
How to do?
Discussion forums for open issues and questions concerning database tools, data access components and developer tools from Devart
https://forums.devart.com/
Code: Select all
try
{
//Lock DataSet
cmd = new OracleCommand("SELECT * FROM myTable WHERE id = :id FOR UPDATE NOWAIT", con);
cmd.Parameters.AddWithValue("id", id);
da.SelectCommand = cmd;
da.Fill(myDt);
//Do sth. with myDt
}
catch(OracleException ex)
{
if(ex.Code == 54)
errorMessage = "Data is in use. Please try again later.";
else
errorMessage = ex.Message;
}
But we use Devart LinqConnect Model!Shalex wrote:Please use the FOR UPDATE statement like:Code: Select all
try { //Lock DataSet cmd = new OracleCommand("SELECT * FROM myTable WHERE id = :id FOR UPDATE NOWAIT", con); cmd.Parameters.AddWithValue("id", id); da.SelectCommand = cmd; da.Fill(myDt); //Do sth. with myDt } catch(OracleException ex) { if(ex.Code == 54) errorMessage = "Data is in use. Please try again later."; else errorMessage = ex.Message; }
Code: Select all
IEnumerable dept = context.ExecuteQuery
("select * from dept where deptno = 10 for update").ToList();
Code: Select all
using (TransactionScope ts = new TransactionScope()) {
MyDataContext context = new MyDataContext();
Dept dept = context.Depts.First();
... // modify dept
context.SubmitChanges();
ts.Complete();
}