現 因tadoquery.sql.text  會有不同
故 tadoquery  的 fields 也是變化的,想實現:如何有代碼實現  tadoquery  設計時   fields editor  -->  add all fields 

解决方案 »

  1.   

    你的想法没有意义因为当tadoquery的sql变化后,tadoquery,打开后,新的sql对应的字段对像就已经建立了访问时就adoquery.fields[0].as...
      

  2.   

    本人是想實現 cxgrid 中的 column 根據 tadoquery.field 的變化而變化
      

  3.   

    如果你是想在IDE里实现这个功能,可以直接看VCL里Property Editor目录下的DSDesign单元,就是这个属性编辑器
    在运行时就不用了吧,呵呵
      

  4.   

    在SQL查询时做就行。select 字段一,字段二,字段三 from 表
    只查询你要的字段。至于DBGrid的Columns,一般是自动的。假设不是自动对应DataSet,你也可以用一个循环 for I := 0 to ADOQuery.FieldCount-1 do begin DBGrid1.Columns.ADD.....  DBGrid1.Columns[I].Field := ADOQuery1.Fields[I].... end;
      

  5.   

    从网上找了一个添加字段的过程,我分别用Table和Query试验成功。ADOQuery是一样的。procedure AddField(FdName: string; DSName: TDataSet; dt: TFieldClass);
    begin
      if DSName.FindField(FdName) <> nil then exit;
      DSName.Close;
      try
        with dt.Create(DSName) do
        begin
          FieldName := FdName;
          DisplayLabel := FdName;
          FieldKind := fkData;
          Name := DSName.Name + 'DSDesigner' + inttostr(DsName.FieldCount);
          index := DSName.FieldCount;
          DataSet := DSName;
        end;
      except
        on e: exception do
          raise Exception.Create(E.Message);
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Table1.Close;
      Table1.DatabaseName := 'DBDEMOS';
      Table1.TableName := 'clients.dbf';
      ADDField('city',Table1,TStringField);
      Table1.Open;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      Query1.Close;
      Query1.DatabaseName := 'DBDEMOS';
      ADDField('city',Query1,TStringField);
      Query1.SQL.Text := 'select * from clients.dbf';
      Query1.Open;
    end;
      

  6.   

    这样就可以一个字段一个字段的添加,等效于Add All Fields。注意,每个字段都是有类型的,例如上面我是添加了一个TStringField类型的字段“city”。
      

  7.   

    请问楼主:你说的thank you是向哪一位说的?我的代码一分也不值吗?
      

  8.   

    http://community.csdn.net/Expert/topic/5438/5438861.xml?temp=.6551477谢楼主了
      

  9.   

    TO 楼主:是的。TO :lwk_hlj(阿凯(学习oralce中)) 楼主的题目是: “如何有代碼實現 tadoquery 設計時 fields editor --> add all fields ”
    于是我用代码实现,所以,我觉得:我的代码有意义。但我没有说你说的没有意义-----我最初的说法与你在一楼说的也是基本一致的。我之所以要贴出后来的代码,就是为了给楼主解决他在题目中说得很明确的问题,我并不是为了证明“有意义”与“无意义”。