就是说我知道field的名字是'SQL_1',它的值就是 adoq.fieldbyname('SQL_1').asstring;
我现在想根据'SQL_1'来求得它的Number值,
这样就能用 adoq.fieldbynumber(number:integer).AsString;
这个Number怎么求呢?

解决方案 »

  1.   


    楼主的意思是要把SQL_1字段的字串值转换为数值型是吧
    var
      S : string;
      F : double;
      I : integer;
    begin
      S := adoq.fieldbyname('SQL_1').asstring;
      F := StrToFloat(S);//如果S是'34.67'这样的字串
      I := StrToInt(S);//如果S是'1234'这样的字串
    end;
      

  2.   

    你是不是要这个
    adoq.fieldbynumber('SQL_1').AsInteger
      

  3.   

    哦,明白楼主的意思了DataSet(ADOQuery、Table...)里的字段,都是从0开始排的,
    如:Field[0]   Field[1].....
      

  4.   

    更正一下
    你是不是要这个
    adoq.fieldbyname('SQL_1').AsInteger
      

  5.   

    我不知道SQL_1是 field[?] 的,我要求这个field[number],怎么求?也就是知道字段的名字,求对应的field[number]中的number值?谢谢各位了
      

  6.   

    你是要这个吗?
    var
      i: Integer;
    begin
      if ADOQuery1.Locate('SQL_1', 'SQL_1值', []) then
        i := ADOQuery1.FieldByName('Number').AsInteger;
      //或
     I:= ADOQuery1.Lookup('SQL_1','SQL_1值','Number') ;
    end;
      

  7.   

    我懂了,是adoq.fieldbyname('SQL_1').fieldNo
    都是俺语文水平不高,麻烦各位了
      

  8.   

    不是fieldbynumber吧,好像就没有这个方法。
    是不是fields[index].asstring?
    这个index值你可以在dataset中的列名中找到对应的序号。
    ds.DataSet.FindField(列名).Index
      

  9.   

    ds.DataSet.FindField(列名).Index
    是对的