adocmd中是一条SELECT MAX(A) AS EXPR1 FROM ATABLE语句,执行后如何得到EXPR1的值赋给一个DEPHI变量以便作处理?

解决方案 »

  1.   

    var
      sNum: string;
    begin
      ADODataSet1.Active := True;
      sNum := ADODataSet1.FieldByName('EXPR1').AsString;
    end;
      

  2.   

    ADODataSet1.FieldByName('EXPR1').AsString
      

  3.   

    sTemp := ADODataSet1.FieldByName('EXPR1').AsString;
      

  4.   

    可我用的是ADOCMD,没有让它产生ADODATASET啊
      

  5.   

    var
    temp:real;//假设字段A的类型为数值型,先定义一个变量temp为实数型begin
      adocmd.close;
      adocmd.sql.clear;
      adocmd.sql.add('SELECT MAX(A) AS EXPR1 FROM ATABLE');
      adocmd.open;
      temp:=adocmd.fieldbyname('expr1').value;//这里就是取值了
      adocmd.close;
      showmessage(floattostr(temp));
    end;
    //这样应该可以了吧.....
      

  6.   

    没有adocmd.sql和adocmd.fieldbyname('expr1').value
      

  7.   

    这么说吧,ADOCommand控件不能返回记录集,它的作用仅是执行一条SQL语句!!
    若要返回记录集,可用ADOQuery、ADOProc、ADOTable等可以返回记录集的控件。
      

  8.   

    这么说吧,ADOCommand控件不能返回记录集,它的作用仅是执行一条SQL语句!!
    若要返回记录集,可用ADOQuery、ADOProc、ADOTable等可以返回记录集的控件。
    =============================================================================
    同意!建议楼主用ADOQuery去返回记录