看见很多用ADO开发数据库,当涉及到数据库/数据源的改变时有时要把譬如说ADOQuery置于Edit状态,操作完成之后还需显式调用Post方法。但有时又没有把ADOQuery置于Edit状态,或操作完成之后没有显式调用Post方法,例如说对ADOQuery :
    with ADOQuery do
       begin
         Close;
         SQL.Clear;
         SQL.Add('sql命令略,关于insert 和 delete的');
         ExecSQL;
         Close;
         SQL.Clear;
         SQL.Add('select 略');
         Open;
       end;
就没有将ADOQuery置于编辑状态。
所以请问到底什么时候要将ADO组件置于Edit状态,什么时候又不呢?
谢谢!!!!!!!!!!!!!

解决方案 »

  1.   

    随你自己呀,你要编辑的时候就EDIT...
    当然也涉及到业务逻辑!
      

  2.   

    with ADOQuery do
           begin
             Close;
             SQL.Clear;
             SQL.Add('sql命令略,关于insert 和 delete的');
             ExecSQL;
             Close;
             SQL.Clear;
             SQL.Add('select 略');
             Open;
           end;楼主,上面的模式代码你从哪里得来的啊,有问题撒!正确的应该是:with ADOQuery do
           begin
             Close;
             SQL.Clear;
             SQL.Add('sql命令略,关于insert 和 delete的');
             Open;
           end;
      

  3.   

    应用方式不一样而已我就一直用sql.add方法
      

  4.   

    AdoQuery在执行有返回数据集的时候用 OPEN执行INSERT、或DELETE、UPDATE语句的时候用  EXEC。。修改某条记录信息的时候用EDIT     POST。
      

  5.   

    你还没弄明白这两种数据库修改的区别,你说的要edit是指修改已经用adoquery查询出来了的数据集(也就是select出来的结果),
    一般在本地的内存里,要修改这个,先adoquery.edit让它处于编辑状态,才可以修改,修改完,要post才能提交到数据库,更新数据库,如果不post,那一般只修改了本机保存的数据集。至于用sql语句,那是直接对数据库表进行操作,不存在一个数据集让你edit,所以就不用adoquery.edit
      

  6.   

    hugoon(ギギ孤独code客ギギ)  的不确切的FCU(彩色铅笔) 3句话 说全面了
      

  7.   

    hellolongbin(一个人[终不似 少年游]) 的意思可以解释为TADOQuery作为一个类 最终目的只要能操作数据库,他可以提供多个method
      

  8.   

    with ADOQuery do
           begin
             Close;
             SQL.Clear;
             SQL.CommandText:='sql命令略,关于insert 和 delete的';
             ExecSQL;
             Close;
             SQL.Clear;
             SQL.Add('select 略');
             Open;
             edit;//這里置于數據集為編輯狀態!因為你所需要是進行插入或者刪除之后的數據!
           end;