var
v: integer;
begin
query.sql.text := 'select sum(field) form table';
query.open;
v := query.fields[0].value; // 或者 [0].asinteger ,[0].asfloat都可以
query.close
end;

解决方案 »

  1.   

    打错了,上面的sql语句中不是form是from
      

  2.   

    上面的代码是正确的,如果数据集返回多条,可以将query循环,循环接受即可:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      q1.SQL.Clear;
      q1.SQL.Text:='select * from customer';
      q1.Open;
      q1.First;
      while not q1.Eof do begin
        showmessage(q1.fields[0].value);
        //处理即可
        q1.Next;
      end;
    end;
    当然需要线设置q1的DataBaseName属性,否则他不知道连接那个数据库
    我用都是Delphi6自带的DBDEMOS,你也可以动态复制此属性如下:
    q1.DatabaseName:='DBDEMOS';加到q1.SQL.Clear;前面即可
      

  3.   

    如果是保存Query的值,上面的方法就行了。
    如果你是想在Query内部保存估计不行,用存贮过程吧
      

  4.   

    var
    v: integer;
    begin
    query.sql.text := 'select field from table';
    query.open;
    query.first;
    while not eof do
    begin
       combobox1.items.add(query.fieldbyname('field').asstring);
       query.next;
    end;
    end;