if adoquery1.fieldbyname('温度').assring>edit1.text then
       当我在edit1中写入值运行程序后,发现与edit1.text进行对比的是数据库中温度字段的第一条记录的值?
不知程序是否写错我希望运行程序时达到的效果是查询到的温度字段中的每个数值都与edit1.text的值进行比较。

解决方案 »

  1.   

    你怎么能用asstring啊,字符串之间怎么比较大小,用asinteger或是asfloat
      

  2.   

    我修改后的是这样:if adoquery1.fieldbyname('温度').asinteger>strtoint(edit1.text) then
      

  3.   

    是不是这个意思
    ADOQuery1.First
    for i := 1 to ADOQuery1.RecordCount do
    begin
      if adoquery1.fieldbyname('温度').asinteger > StrToInt(edit1.text) then
      begin
        //do sth
      end;
      ADOQuery1.Next ;
    end;
      
      

  4.   

    ADOQuery1.First;
    for i := 1 to ADOQuery1.RecordCount do
    begin
      if adoquery1.fieldbyname('温度').asinteger > StrToInt(edit1.text) then
      begin
    Application.MessageBox('温度超出正常范围,单击"显示记录"可显示具体信息!','警告框',MB_ICONInformation);
      end;
      ADOQuery1.Next ;
    end;我修改后是这样的,不过还存在一个问题是对比后,只要有记录的值满足条件就会有警告框,可是我想要的如果出现这样的情况只显示一次就够了哦!
      

  5.   

    ADOQuery1.First;
    while not ADOQuery1.eof do
    begin
      if adoquery1.fieldbyname('温度').asinteger > StrToInt(edit1.text) then
      begin
    Application.MessageBox('温度超出正常范围,单击"显示记录"可显示具体信息!','警告框',MB_ICONInformation);
      break; //已經報警,跳出循環,以後超出的記錄不再比較。  end;
      ADOQuery1.Next ;
    end;