SQL.Add('SELECT formula,val(DMAF) as i FROM 配方诊断表 where 1=1 and formula ='''+Combobox3.Text+''' and formula ='''+Combobox4.Text+'''');
这个语句中。我想把val(DMAF)作为一个变量。查询各个字段的值。请问如何给所要查询的变量字段赋值呢。就是说表中有好多字段。如何查询各个字段的值。后面where条件不变。如何实现 

解决方案 »

  1.   

    sqlstr:='insert into Machine (MACHINEID,USERID) values (:Pmach,:puser)';params[0].value:=machedit.Value ;
    params[1].Value :=edituser.Value ;可以使用Params这个参数
      

  2.   


    with ADOQuery1 do begin
    Active := false;
    SQL.Clear;
    SQL.Add('SELECT * FROM 配方诊断表 where ......');
    Active:=true;
    First;
    while not EOF do begin
      for i:=0 to Fields.Count-1 do begin  //通过循环取各字段的值
        //Show Fields[i].value  
      end;
      Next;
    end;
      

  3.   

    具体到我上面的语句。我改怎么写呢?能给我举个小例子吗?谢谢了。我想查询两个字段的值。然后把这两个值赋到dbchart中的柱形图中。我如何实现呢?
    谢谢了。我加分吧。
      

  4.   


    ADOQuery1.Close;
    ADOQuery1.SQL.Text := 'SELECT formula,:myparam as i FROM 配方诊断表 where 1=1 and formula ='+QuotedStr(Combobox3.Text)+' and formula ='+QuotedStr(Combobox4.Text); ADOQuery1.Parameters.ParamByName('myparam').Value := val(DMAF);
    ADOQuery1.Open;
      

  5.   

    好像不行啊。DMAF是数据库中的一个字段。无法val赋值啊。
    可以再说的详细些吗。我试了一下。不行啊
      

  6.   

    假设表中有5个字段
    ADOQuery1.SQL.Text := 'SELECT formula,:myparam as i FROM 配方诊断表 where 1=1 and formula ='+QuotedStr(Combobox3.Text)+' and formula ='+QuotedStr(Combobox4.Text); 
    用select查询其中的两个。就像上面的语句一样。select formula和myparam as i。我打算myparam as i为变量,可以通过一个combobox来控制。选择不同的选项,查询不同的字段。不知道我描述的明白吗
      

  7.   


    var
      field:string;
    begin
      field := combox1.text;//combox1中保存的是字段列表
      ADOQuery1.Close;
      ADOQuery1.SQL.Text := 'SELECT formula,'+field+' as i FROM 配方诊断表 where 1=1 and formula ='+QuotedStr(Combobox3.Text)+' and formula ='+QuotedStr(Combobox4.Text); 
      ADOQuery1.Open;
    end;
      

  8.   

    var
      field:string;
    begin
      field := combox1.text;//combox1中保存的是字段列表
      ADOQuery1.Close;
      ADOQuery1.SQL.Text := 'SELECT formula,'+field+' as i FROM 配方诊断表 where 1=1 and formula ='+QuotedStr(Combobox3.Text)+' and formula ='+QuotedStr(Combobox4.Text); 
      ADOQuery1.Open;
    end;先Close后Open,难道ADOQuery1是这样运行的?我是超级菜鸟,不用跟我计较什么的
      

  9.   

    还是不行啊,[Error] Ptable.pas(363): Not enough actual parameters