代码如下:
var
  ADOQuery1:TADOQuery ; //Query控件
begin
  inherited;
  ADOQuery1:=TADOQuery.Create(Self);
  ADoQuery1.Connection := Fdata.ADOConnection ;
  ADOQuery1.SQL.Clear ;
  ADOQuery1.SQL.Add('select Max(DepartID) from Department');
  ADOQuery1.ExecSQL  ;
////////////////////////////////////////////////////////////
//  ADOQuery1.GetFieldData(0,sField);
//  ShowMessage(sField);
  ADOQuery1.Free ;我要如何定义这个sField?

解决方案 »

  1.   

    你可以这样:
    ADOQuery1.Fields[0].As...
      

  2.   

    ADOQuery1.Fields[0].values
    不用按照名字来取,用FIELDS的排列顺序来取
      

  3.   

    楼上这位大哥,能否说的详细点,因为我不懂delphi,谢谢
      

  4.   


    var
      ADOQuery1:TADOQuery ; //Query控件
    begin
      inherited;
      ADOQuery1:=TADOQuery.Create(Self);
      ADoQuery1.Connection := Fdata.ADOConnection ;
      ADOQuery1.SQL.Clear ;
      ADOQuery1.SQL.Add('select Max(DepartID) from Department');
      ADOQuery1.Active:=True  ;
    ////////////////////////////////////////////////////////////
      SHowMessage(ADOQuery1.Fields[0].AsString);
      ADOQuery1.Free ;
      

  5.   

    你的ADOQuery1.ExecSQL  改为 adoquery1.open
    然后 i:=adoquery1.fields[0].values; //i为int型你是select 语句,用execsql取不出值的
      

  6.   

    var
      ADOQuery1:TADOQuery ; //Query控件
      sField: String;
    begin
      inherited;
      ADOQuery1:=TADOQuery.Create(Self);
      ADoQuery1.Connection := Fdata.ADOConnection ;
      ADOQuery1.SQL.Clear ;
      ADOQuery1.SQL.Add('select Max(DepartID) as expr from Department');
      ADOQuery1.ExecSQL  ;
      sField := ADOQuery1.FieldValues['expr'];
    ////////////////////////////////////////////////////////////
    //  ADOQuery1.GetFieldData(0,sField);
    //  ShowMessage(sField);
      ADOQuery1.Free ;这样就对了!