上这样的
我想将一批数据(比如一个ListView列表中的内容)采用一个循环或是别的方式吧
将它存放到一个AdoQuery的RecordSet中,最后再将这批数据一起更新到数据库中,
如果不成功的话,再保存成.xml的,然后再从.xml中导入RecordSet中,再一次向
数据库中更新,我这样做是为了防止做事务的嵌套什么的,因为我想只有当所有的
数据上更新成功才提交事务,如果有一条失败,则将事务回滚。
我知道在AdoQuery的RecordSet的Fields中有一些Append,Delete之类的属性,可
是搞了一阵子老是报错,不知道要怎么搞才行,还望大家帮一下忙。讲了这么多,也不知道大家能不能听懂?

解决方案 »

  1.   

    使用AdoDataSet好些。设置AdoQuery的属性为CursorLocation = clUseClient
    LockType = ltBatchOptimistic
    CursorType = ctStatic更新完了之后用一下UpdateBatch方法
      

  2.   

    bisc_sunny(嶈亴橆湻鑰鑷甯櫨鏅笢鐨勯潚) 
    能说详细一点吗?
    最好能有例子,代码
      

  3.   

    *#_#*
    这样试试可以不
    try
     begintrans
     ....
     committrans
    except 
     rollbacktrans;
     adoquery1.active:=true;
     adoquery1.savetoxml();
    end;
    以上代码是没有用的,因为每插入数据后自动post,所以在插入一个表时,只要有一项内容有错误就差入不进去,ado中存放的数据是不完整的数据,即使存在xml中也是没有意义(何况还。。~-~)。其实你可以在录入数据时校验。
      

  4.   

    你这样好像只是保存成.xml文件,我问的不是这样
    我是想成批将比如ListView里的数据导入一个TdataSet
    的RecordSet中
      

  5.   

    看样子你是用两层结构的,那么你可以用bisc_sunny(嶈亴橆湻鑰鑷甯櫨鏅笢鐨勯潚)  的方法。,这样ADOquery POST的时候实际上并没有更新到数据库中,但会保存起来,然后用air_line(永恒的心) 的方法调用事务