1、当然可以。不过第二条Insert最好执行了一条Query_T1.Post。
2、Locate到需要修改的记录,然后
if Query_T1.Locate('号码', '001', []) then
begin
Query_t1.Edit;
Query_T1['号码'] := '003';
...
Query_T1.Post;
end;

解决方案 »

  1.   

    可以用CacheUpdate,这样数据都在缓存中修改,直到你ApplyUpdate为止。
      

  2.   

    可以多次修改,在post.
    没post的数据都可改。还可用
    用tquery的beforpost事件作最后的有效性校验。
    Occurs before an application posts changes for the active record to the database or change log.
      

  3.   

    用clientdataset
    要真正写库时,用clientdataset.applyupdates
      

  4.   

    用TQuery一样可以啊。CacheUpdate属性设为False。
      

  5.   

    奇怪:你为什么不自己在delphi上试试?一试试就知道结果啊。
    给分!我分数不多啊。
      

  6.   

    我前面不是写了吗?
    if Query_T1.Locate('号码', '001', []) then
    begin
    Query_t1.Edit;
    Query_T1['号码'] := '003';
    ...
    Query_T1.Post;
    end; 
      

  7.   

    但是,您说在第二条Insert最好执行了一条Query_T1.Post,那样岂不是要进行一次磁盘的读写操作,我不post用您的方法能做到吗?我想避免多次的磁盘读写,因为每一次读写磁盘都很慢,相对于客户机来说。请您再给详细说说。附:我的环境: win2000 Server  CPU1.4G 512RAM  40G   ,客户机:win2000  1.4G 256M谢谢喽。
      

  8.   

    还有啦
    CacheUpdate,这样数据都在缓存中修改。那我怎样修改,仍然可以用locate吗?那怎样知道locate是在真正的数据表里查询还是在缓存里处理。
      

  9.   

    我前面不是说了吗,
    “可以用CacheUpdate,这样数据都在缓存中修改,直到你ApplyUpdate为止。 ”
    这样即使POST,也不会修改磁盘中的数据。
      

  10.   

    谢谢chechy(chechy)和大家耐心的解答.
    敬礼!
      

  11.   

    忘了问了,TADOQuery中没有CachedUpdates啊。(按是不是笨了点 :(  )