procedure TForm1.Button1Click(Sender: TObject);
begin
if not ADOConnection1.InTransaction then
AdoConnection1.BeginTrans;
try ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:= 'SELECT * FROM TPath ';
ADOQuery1.Open;
// do……
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:= 'UPDATE TPath SET '
+ ' PathDesc =''' + Edit2.Text + ''','
+ ' KM = '+ Edit3.Text +' ';
+ ' WHERE PathID=''P006'' ';
ADOQuery1.ExecSQL; if ADOConnection1.InTransaction then
ADOConnection1.CommitTrans;
except
if ADOConnection1.InTransaction then
ADOConnection1.RollbackTrans;
ShowMessage('保存操作失败,数据库连接错误!');
end;
end;执行后出错,
ADOConnection和ADOQuery大多是默认设置
不知有人碰见过吗?
难道ADOConnection的事务处理在查询后就不能执行其他SQL语句?
如果用不同的ADOQuery就不会出错!
想不明白,请高手指点!如何使用同一ADOQuery而不出错?
begin
if not ADOConnection1.InTransaction then
AdoConnection1.BeginTrans;
try ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:= 'SELECT * FROM TPath ';
ADOQuery1.Open;
// do……
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:= 'UPDATE TPath SET '
+ ' PathDesc =''' + Edit2.Text + ''','
+ ' KM = '+ Edit3.Text +' ';
+ ' WHERE PathID=''P006'' ';
ADOQuery1.ExecSQL; if ADOConnection1.InTransaction then
ADOConnection1.CommitTrans;
except
if ADOConnection1.InTransaction then
ADOConnection1.RollbackTrans;
ShowMessage('保存操作失败,数据库连接错误!');
end;
end;执行后出错,
ADOConnection和ADOQuery大多是默认设置
不知有人碰见过吗?
难道ADOConnection的事务处理在查询后就不能执行其他SQL语句?
如果用不同的ADOQuery就不会出错!
想不明白,请高手指点!如何使用同一ADOQuery而不出错?
解决方案 »
- TServerSocket和TClientSocket做的C/S程序,网络断开,断电等的问题
- 请教一个关于记录体长度的问题?
- 关于ADOTable1.Locate()方法如何区分大小写的问题!!
- 快进来 在线等
- 怎样能使QRDBText中的内容超过5个字就自动换行显示?或用别的控件能达到这个效果吗?
- 谁能讲下异常机制呢?书也看了,不过我感觉还是有点问题?
- 搞不懂
- delphi 判断ADO连接的问题
- DBGRID控件里面的某一行某一列的内容过多,在显示屏上一行显示不完,有没有办法在这行这列里面换行显示呀
- 请问用Delphi如何实现EnumWindows,请给出具体代码。
- 如何使用户在EDIT中只输入日期?
- 有关ADOConnection事务处理的问题,请高手指点!
+ ' WHERE PathID=''P006'' ';
应该
+ ' KM = '+ Edit3.Text +' '
+ ' WHERE PathID=''P006'' ';
我知道是什么原因了
因为TADODataset的CursorType设成了crUseServer
就是使用服务器端游标了
Thank you the same way.
我的事务处理中用同一个TADOQuery执行了多次Select以及UPdate-Insert等操作;
事务处理中TADOQuery的CursorLoacation和CursorType 要如何设置呢?
才不会出错呢*
CursorLoacation ? 好像 放哪边都可以吧 ... Study
begin
try
if not ADOConnection1.InTransaction then
AdoConnection1.BeginTrans;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:= 'SELECT * FROM TPath ';
ADOQuery1.Open;
// do……
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:= 'UPDATE TPath SET '
+ ' PathDesc =''' + Edit2.Text + ''','
+ ' KM = '+ Edit3.Text +' ';
+ ' WHERE PathID=''P006'' ';
ADOQuery1.ExecSQL;
if ADOConnection1.InTransaction then
ADOConnection1.CommitTrans;
except
ShowMessage('保存操作失败,数据库连接错误!');
end;
if ADOConnection1.InTransaction then
ADOConnection1.RollbackTrans;
end;
OK!你可以试一下了。
Mode
LockType
CursorType
CursorLocation
的用法
thanks!
我已经自己解决了。
准备结帐了……还有人来领分吗?