1。用adoconnection如何开始事务、保存事务、回滚事物?
2。在sql server 2000 中如何解决上面问题?
3。我下面的代码为什么提示不能保存事务?
  use  pangu
  go
  delete from department
  where dept_id='1021'
save transaction after_deleteupdate employee
set dept_id='1001'
where dept_id='1021'if @@error!=0 or @@rowcount=0 then
begin
rollback tran after_delete
commit tran
print'更新员工信息时产生错误!'
return
end;

解决方案 »

  1.   

    你的这不是事务啊。
    BEGIN TRANSACTION aaa
    ///SQLIF ( @@error = 0 )
       COMMIT TRANSACTION aaa
     ELSE
       ROLLBACK TRANSACTION aaa
      

  2.   

    adoconnection1.BeginTrans;
       try
         ......
         adoconnection1.CommitTrans;
       except
         adoconnection1.RollbackTrans;
       end;
      

  3.   

    对!!把你的代码加入到try后面
    adoconnection1.BeginTrans;
       try
         .....       ←------------------这里!!!              
         adoconnection1.CommitTrans;
       except
         adoconnection1.RollbackTrans;
       end;
      

  4.   

    1。up,同意zdcnow(磁效应)
    2。BEGIN TRANSACTION,COMMIT TRANSACTION和ROLLBACK TRANSACTION
    3。
      use  pangu
      go
    begin transaction after_delete
      delete from department
      where dept_id='1021'
    save transaction after_deleteupdate employee
    set dept_id='1001'
    where dept_id='1021'if @@error!=0 or @@rowcount=0 then
    begin
    rollback tran after_delete
    commit tran
    print'更新员工信息时产生错误!'
    return
    end;
      

  5.   

    use  pangu
      go
      delete from department
      where dept_id='1021'
    BEGIN TRANSACTION
    update employee
    set dept_id='1001'
    where dept_id='1021'if @@error<>0 or @@rowcount=0 begin
      ROLLBACK TRANSACTION
      print'更新员工信息时产生错误!'
      return
    end else
      COMMIT TRANSACTION
      

  6.   

    use  pangu
      go
    begin transaction after_delete
      delete from department
      where dept_id='1021'
    save transaction after_deleteupdate employee
    set dept_id='1001'
    where dept_id='1021'if @@error!=0 or @@rowcount=0 then
    begin
    rollback tran after_delete
    commit tran
    print'更新员工信息时产生错误!'
    return
    end;
    测试通过!