请问如何写一个遍厉一张数据表的所有列?
用ADO控件
ADOQuery1.sql
的什么属性。
怎么写一个循环,设置循环结束

解决方案 »

  1.   

    你是要遍厉列还是行?
    行用ADOQuery1.next;
    MSN:[email protected]
      

  2.   

    for i:=0 to  ADOQuery1.FieldCount -1 do
    begin
      ADOQuery1.Fields[0].Value:='wfefef';  
    end;
      

  3.   

    ADOQuery1.sql.add('select * from table');
    ADOQuery1.open;
    for i:=0 to  ADOQuery1.FieldCount -1 do
    begin
      XXX:=ADOQuery1.Fields[0].Value;  
      ADOQuery1.next;
    end;
      

  4.   

    ADOQuery1.SQL.Add('select * from Pmenu where username = '''+s2+'''');
          try
          MainForm.ADOQuery1.Open;
          except
           Showmessage('数据库打开失败!');
           exit;
          end;
       //Showmessage(FrmLogin.UserNameEdit.Text+s2);
          for i:=0 to  ADOQuery1.FieldCount -1 do
          begin
             if ADOQuery1.Fields[2].Value=0;
             //我想在这里插一句获得该列的名字的语句
             ADOQuery1.Next;
          end;
    请问怎么写??
      

  5.   

    如何获得每列的名字
    TDataSet.FieldDefs[i].Name <-- 每个列的列名字
    列名的顺序取决数据库字段的顺序,然后就是 SQL语句罗列的顺序
    列子:
    procedure getTableStru();
    var
     aSqlPK,aSqlFlag,aSqlDataFields
    begin
     ....... ......//记录表结构
         for i:=0 to FieldDefs.Count-1 do
           begin
             //如果是关键字
             if (FieldDefs[i].Name = 'PART_NO') or (FieldDefs[i].Name = 'PN_NO') or
                (FieldDefs[i].Name = 'VERSION_NO') or (FieldDefs[i].Name = 'VERSION_TYPE') then
                    //记录关键字字段
                     aSqlPK:=aSqlPK+','+FieldDefs[i].Name;
           end
           else begin
                    //记录其他字段
                     aSqlDataFields:=aSqlDataFields+','+FieldDefs[i].Name; //是数据字段
                end;
          end;//for
     ....... .......
    end;//proc
    //说明
    aSqlPK 和 aSqlDataFields 记录关键字字段和其他字段,要注意生成的字符串 开头的字符是 “,”如果要去掉可以使用截取函数
      噢可?
     如果可以,请给分,谢谢!
      

  6.   

    var i : integer;
    begin
         for i := 0 to Adoquery1.FieldCount - 1 do
           Memo1.lines.Add(AdoQuery1.Fields[i].FieldName);
    end;