就是说, ADOQuery的Fields对应的 SQL语句(Column);
如Fields:       ADOQueryID   ADOQuyerName  ADOQueryCLOUMN1  
SQL语句:Select     ID      ,    Name      , Name + Name  From  Emp  
ADOQueryID 对应 ID,  ADOQueryName 对应 Name,ADOQueryCLOUMN1 对应 Name+Name, 这是通过观察得到的,能不能在运行时刻得到这些信息呢,
请指教. 
 

解决方案 »

  1.   

    for i:=0 to form1.form1.ComponentCount-1 do
      begin
        if form1.Components[i] is tadoquery then
        begin
        //在这里处理
          if tadoquery(form1.components[i]).name='id' then
          begin
          ...
          end;    end;
      end;
      

  2.   

    for i:=0 to form1.ComponentCount-1 do
      begin
        if form1.Components[i] is tadoquery then
        begin
        //在这里处理
          if tadoquery(form1.components[i]).name='id' then
          begin
          ...
          end;    end;
      end;
      

  3.   

    一定要用Sql语句 ?  那给别名可以吗 ? 
    是不是这个意思 : 字段名是 ID     ,    Name     ,想要得到显示 
    ADOQueryID   ADOQuyerName  ADOQueryCLOUMN1  ? select ID as ADOQueryID ,name as ADOQueryName, (Name + Name) as ADOQueryCloumn1 From Table 
    是不是这个意思 ?
      

  4.   

    不是那样的TForm1 = class(TForm)
        ADOQuery: TADOQuery;
        ADOConnection1: TADOConnection;
        ADOQueryID: TIntegerField;
        ADOQueryName: TStringField;
        ADOQueryCOLUMN1: TStringField;
      private
        { Private declarations }
      public
        { Public declarations }
      end;ADOQueryID, ADOQueryName, ADOQueryCOLUMN1是Delphi根据SQL
    语句生成的Field, 我现在要实现的是已知SQL和已生成的Field
    要得出各个Field对应的SQL语句中的"Column":
    ADOQuery的SQL语句为:   Select ID, Name, Name+Name From Emp观察可知道Field "ADOQueryID" 是根据 SQL语句Column为 ID 生成的,
    Field "ADOQueryName" 是根据 SQL语句Column为 Name 生成的.
    .....我想ADOQuery里一定有记载信息, 不然的话,TADOQuery操作数据
    怎么知道操作表中的是哪个字段, 那这些信息如何提出来呢?
       
      

  5.   

    ADOQueryID,...等是你在设计期建立永久字段时插入的,可在运行期直接引用,运行期也可通过FieldByName('ID')得到ID字段,或者Field[index]引用字段(index为永久字段表的索引)
      

  6.   

    ado.query.fieldsbyname('ID').fieldname  
    try again
      

  7.   

    看来我是没有表达好我要问的东西,再说一遍.目标: 用程序分析SQL, 找出各个Fields对应的SQL语句例如: 
        SQL语句: Select A.ID, A.Name, A.Name + A.Name ,
                     (Select ID From Emp where Id = A.ID )    
                 From Emp A    在Field编辑器里Add all Fields生成4个Fields:
              ID,  Name,   COLUMN1,  COLUMN2     要求得到各个Field对应的SQL语句:
           FieldByName('ID') 分析得到对应的SQL语句: 'ID'
           FieldByName('Name') 分析得到对应的SQL语句: 'Name'
           FieldByName('Column1')分析得到对应的SQL语句: 'Name+Name'
           FieldByName('Column2')分析得到对应的SQL语句: 
                       '(Select ID From Emp where Id = A.ID )'
    有人做过类似程序吗? 
      

  8.   

    是不是这个意思 ? 不知道这次猜对没有:) ,如对了,有不知楼主这样做的意图 :) ,望指正Select A.ID  as 'A.ID', A.Name as 'A.Name', (A.Name + A.Name) as 'A.Name + A.Name' ,
                     (Select ID From Emp where Id = A.ID ) as '(...)' 
                 From Emp AFieldByName('A.Name').DisplayName ;  //A.Name
      

  9.   

    No, 是分析SQL语句, 不是改写, 事实就是完成Delphi的Field Edit的功能, 它那个
    Field是如何产生的我不知道,我要完成的功能恰恰相反.
    根据Field和SQL找SQL语句中的Column(数据库中表的列叫"Cloumn"吧)这个问题到此为止吧. 
    看来我的表达能力存在着很大的问题,打挠了各位,抱歉!
     
      

  10.   

    ID,Name是数据表中的物理字段,CLOUMN1是SQL语句Name + Name所形成的逻辑字段,在数据表的Column中是不存在的,但是可通过FieldByname、Fields等属性访问。