我要如何获取一条记录的某个字段值
现在有一个表 一个变量a 
商品 价格
1    10
2    15
3    20
4    12
我要如何把商品 2中价格 赋值给 a

解决方案 »

  1.   

    我是楼主
    adoquery3.Close;
    adoquery3.SQL.Clear;
    adoquery3.SQL.Add('select 价格 from sp where 商品='+jiage3+'');
    adoquery3.Open;
    jiage3:=adoquery2.Fieldbname('商品').asstring;
    a:=adoquery3.fields(0);
    jiage3是表2中的一个字段  这样写 报错[Error] Unit1.pas(919): Undeclared identifier: 'Fieldbname'
                                     [Error] Unit1.pas(919): Missing operator or semicolon
                                     [Error] Unit1.pas(920): Missing operator or semicolon
                                      [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
    我该怎么写啊   
      

  2.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
    a:integer;
    begin
     with adoquery1 do begin
      if Locate('商品','2',[]) then {如果查询到商品名等于2的}
      a:=FieldValues['价格']; {将价格赋值给变量A}
     end;end;
      

  3.   


    jiage3:=adoquery2.Fieldbname('商品').asstring; 
    adoquery3.Close; 
    adoquery3.SQL.Clear; 
    adoquery3.SQL.Add('select 价格 from sp where 商品='''+jiage3+''''); 
    adoquery3.Open; 
    a:=adoquery3.fields(0); 
      

  4.   

    jiage3:=adoquery2.Fieldbname('商品').asstring;
    adoquery3.Close; 
    adoquery3.SQL.Clear; 
    adoquery3.SQL.Add('select 价格 from sp where 商品='''+jiage3+''''); 
    adoquery3.Open; 
    a:=adoquery3.fields.fields[0].asstring;
    或者:
    a:= adoquery3.fieldByName('价格').asstring;
      

  5.   

    adoquery3.Close; 
    adoquery3.SQL.Clear; 
    adoquery3.SQL.Add('select 价格 from sp where 商品='+jiage3); 
    adoquery3.Open; 
    jiage3:=adoquery2.Fieldbname('商品').asstring; //FieldByName
    a:=adoquery3.fields(0).asstring; // +asstring
    //或者a:=jiage3;