程序中我是用SQLConnection控件连接oracle数据库的。
其中有创建表和插入等操作,都在一起执行,请问如何用事务进行控制呀。
我看到有 SQLConnection1.SQLConnection.beginTransaction() 有这样的方法,开启事务是不是这样写呀?里面的参数又是什么呢?注:我用的不是ADOConnection控件。谢谢!

解决方案 »

  1.   

    用一个范例,就可以说明问题了哈。随便说一声,本范例摘自Delphi7的帮助文件。procedure TForm1.TransferButtonClick(Sender: TObject);var
      Amt: Integer;
      TD: TTransactionDesc;
    begin
      if not SQLConnection1.InTransaction then
      begin
        TD.TransactionID := 1;
        TD.IsolationLevel := xilREADCOMMITTED;
        SQLConnection1.StartTransaction(TD);
        try
          Amt := StrToInt(AmtEdit.Text);
          Debit.Params.ParamValues['Amount'] := Amt;
          Credit.Params.ParamValues['Amount'] := Amt;
          SQLConnection1.Commit(TD); {on success, commit the changes};
        except
          SQLConnection1.Rollback(TD); {on failure, undo the changes};
        end;
      end;
    end;
      

  2.   

    想问一下楼上的,那个TTransactionDesc是从哪个类继承下来的?如果TD: TTransactionDesc;
    直接这样写,会找不到TTransactionDesc这个东西的。我刚学delphi,不熟悉,谢谢啦。
      

  3.   

    SQLConnection1也没有StartTransaction()这个方法呀。