我现在是用adoquery来对本地数据库进行操作的,不知有什么方法可以现在事务.我在书上
看到可以用database来实现事务,但我现在是用adoquery来进行操作的,我不想改为用DATABASE,请各位说说有没有办法用ADOQUERY实现本地数据库的事务.

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
       i:integer;
    begin
       adoconnection1.BeginTrans;
       try
       for i:=0 to 10  do
       begin
          adoquery1.Close;
          adoquery1.SQL.clear;
          adoquery1.SQL.add('insert into table1 values(:c1,:c2)');
          adoquery1.Parameters.ParamByName('c1').value:=i;
          adoquery1.Parameters.ParamByName('c2').value:=i;
          adoquery1.ExecSQL;
       end;
          adoconnection1.CommitTrans;
       except
          adoconnection1.RollbackTrans;
       end;
    end;
      

  2.   

    to zdcnow(磁效应)能不能说一下为什么在程序中要用到
    for i:=0 to 10  do
    这有什么用??
      

  3.   

    to qhf503(qq) :
    事务可以一次性操作多条记录,这是给你一个例子看看而已,我一次性增加了11条记录到数据库中。你把它去掉也可以的,呵呵。
      

  4.   

    for i:=0 to 10  do  只还过是指定往数据库中插入11条记录而已!在你的程序中应该将该段代码改成你自己的数据库操作代码!!
      

  5.   

    UP,, zdcnow(磁效应)可以用到本地数据库上面例如: Access在程序中设置一个 AdoConnection连接数据库,连接方式任选,连接的数据库不限。然后声明 Q:Tadoquery;
    Q.connection:=Adoconnection;然后:
    adoconnection1.BeginTrans;
    try
      Q的操作...
    exceptadoconnection1.RollbackTrans;
    end;adoconnection1.CommitTrans;另外。不用Adoconnection. Adoquery.connection下面也有时务的开始,回滚,和提交操作,不知道是否可行?