if adoquery1.fieldbyname('温度').assring>edit1.text then
当我在edit1中写入值运行程序后,发现与edit1.text进行对比的是数据库中温度字段的第一条记录的值?
不知程序是否写错我希望运行程序时达到的效果是查询到的温度字段中的每个数值都与edit1.text的值进行比较。
当我在edit1中写入值运行程序后,发现与edit1.text进行对比的是数据库中温度字段的第一条记录的值?
不知程序是否写错我希望运行程序时达到的效果是查询到的温度字段中的每个数值都与edit1.text的值进行比较。
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;
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;我修改后是这样的,不过还存在一个问题是对比后,只要有记录的值满足条件就会有警告框,可是我想要的如果出现这样的情况只显示一次就够了哦!
while not ADOQuery1.eof do
begin
if adoquery1.fieldbyname('温度').asinteger > StrToInt(edit1.text) then
begin
Application.MessageBox('温度超出正常范围,单击"显示记录"可显示具体信息!','警告框',MB_ICONInformation);
break; //已經報警,跳出循環,以後超出的記錄不再比較。 end;
ADOQuery1.Next ;
end;