我在做表的字段统计时,如果前几个字段都能正确输入,而后边的不能,如何通过代码将数据库恢复到以前。即前几个字段也不 输入到数据库里

解决方案 »

  1.   

    问题表述不是太清楚,
    不过看上去有点象是:
    1、你用的是两层模式
    2、你用的是直接对数据集的操作
    3、操作的方式是:
    ADO:LockType->ltOptimistic而非ltBatchOptimistic,
    BDE:CachedUpdates->False而非True
      

  2.   

    使用数据库的事务处理方式,类似以下格式:  Db.StartTransaction; //开始事务  Tbl.Edit;            //表数据修改
       ......  Tbl.Post;            //表数据保存  Try                  //异常代码段,异常处理数据库事务提交
        Db.Commit;         //数据库事务提交,可以加其他代码控制提交条件
      Except
        Db.RollBack;
        ShowMessage('数据库事物提交失败..');
      end
      

  3.   

    我是用query组件,形式如下:
    query1.sql.add(......);
    query1.execsql;
    ....
    query1.sql.clear;
    query1.sql.add(....);
    query1.execsql;
    ...
    query1.sql.clear;
    query1.sql.add(....);
    query1.execsql;
    ....
    query1.sql.clear;
    query1.sql.add(....);
    query1.execsql;
      
    如果我在执行第三个查询是出错,我想取消前两条语句的执行结果,能通过book属性实现吗?具体点!!!
      

  4.   

    不用能book来实现,
    如果你用BDE的话,请你用:
        Database1.StartTransaction;
        try
          ...//加在这儿
          Database1.Commit; {on success, commit the changes};
        except
          Database1.Rollback; {on failure, undo the changes};
        end;
      

  5.   

    如果你用ADO的话,请用:
      ADOConnection1.BeginTrans;
      ADOConnection1.CommitTrans;
      ADOConnection1.RollbackTrans;