ADOQUERY的SQL属性中同时存在多条插入语句
Insert AAA(ID,Name) Values('111','111')
Insert AAA(ID,Name) Values('111','111')
Insert AAA(ID,Name) Values('111','111')
AAA表存在主键约束,执行代码如下,本以为会因为出现键重复而完全回滚,但是在执行的过程中并不会触发错误,并且第一行插入成功,并没有回滚,如果再次执行才会触发错误,请高手指点,谢谢!! try
ADOCon.Open;
ADOCon.BeginTrans;
ADOInsert.ExecSQL;
ADOCon.CommitTrans();
RevMemo.Items.Add(TableName+' 执行成功¡');
except
RevMemo.Items.Add(TableName+' 执行失败¡');
ADOCon.RollbackTrans();
end;
Insert AAA(ID,Name) Values('111','111')
Insert AAA(ID,Name) Values('111','111')
Insert AAA(ID,Name) Values('111','111')
AAA表存在主键约束,执行代码如下,本以为会因为出现键重复而完全回滚,但是在执行的过程中并不会触发错误,并且第一行插入成功,并没有回滚,如果再次执行才会触发错误,请高手指点,谢谢!! try
ADOCon.Open;
ADOCon.BeginTrans;
ADOInsert.ExecSQL;
ADOCon.CommitTrans();
RevMemo.Items.Add(TableName+' 执行成功¡');
except
RevMemo.Items.Add(TableName+' 执行失败¡');
ADOCon.RollbackTrans();
end;
ADOInsert.ExecSQL;
换成
ADOCon.Execute(your SQL)
ADOCon.Open;
ADOCon.BeginTrans;
//此处放:Insert AAA(ID,Name) Values('111','111')(保证记录中已经有的);
//此处放:update....;
ADOCon.CommitTrans();
RevMemo.Items.Add(TableName+' 执行成功¡');
except
RevMemo.Items.Add(TableName+' 执行失败¡');
ADOCon.RollbackTrans();
end;
你看是否执行update就可以确定你的问题是什么原因了。
RECORDSET的值怎么办??
SELECT * FROM TABLE1
SELECT * FROM TABLE2
SELECT * FROM TABLE2
Insert AAA(ID,Name) Values('111','111')
Insert AAA(ID,Name) Values('111','111')
Insert AAA(ID,Name) Values('111','111')
虽然放在一个sql中,但执行是跟放在3个sql中执行是一样的。
'if @@error<>0 then begin rollback tran return end '+
'....'+
'commit tran';
但是这样你就判断不出是否执行成功!只是保全了数据的完整性!