我的经验:
你是操作本地的DBase数据表的吧,BDE好象不支持对本地表的Commit和Rollback吧

解决方案 »

  1.   

    好像用cacheupdate的话会自动启动一个事务,因此你就不用增加自己的事务处理了,如果要用自己的事务处理,就别用cacheupdate。
      

  2.   

    to BaldZhang:
     我是在一台机器上做的,但是有网卡,我模拟从网卡的地址上取得数据(oracle数据库),这样是不是bde也不支持呀,那我应该怎么让数据表即时更新呢,用refresh好像也不行的。to hzb:
     我把各个starttransaction都去除后再运行,则显示“no user transaction is currently in progress”的。
      

  3.   

    我帮你测试一下啦,不过我没有Oracle,只能用DBase 和InterBase了
      

  4.   

    我测过啦,DBase和InterBase都没有问题,
    据我的经验,这个问题多是出在BDE不支持你所需要的功能,再仔细检查一下你的程序
      

  5.   

    请注意:调用database1.startTransaction后,与Database1有关的数据元件必须有事务发生才能调用Commit和 RollBack方法。否则就会出错。
    请改一下试试看:(我没试,不过应该是这样)
    with datamodule1.table1 do
    begin
    datamodule1.database1.startTransaction;
    Delete;
    try
    ApplyUpdates;
    datamodule1.database1.commit ;
    except
    datamodule1.database1.rollback;//用step over检查,就在此行显示蓝条
    raise;
    end;
    commitupdates;
    end;可以不使用事务操作,直接调用:
      DataBase1.ApplyUpdates([Table1]);