2017-03-16 66 views
0

我需要帮助解决我的代码...(德尔福)query.next不工作

我尝试用这个代码

Adoquery.close; 
ADOQuery1.SQL.Clear; 
ADOQuery1.SQL.Add('select * from schedule where every like ''%5%'''); 
ADOQuery1.Open; 

if not ADOQuery1.Eof then 
    begin 
    ShowMessage('hallo '+ADOQuery1.fieldbyname('remark').AsString); 
    ADOQuery1.Next; 
    end 
Else 
    Begin 
    end; 

我对结果2个数据记录建立一些应用程序,但为什么只有一条评论显示?

我尝试跟踪它并在ADOQuery1.next中发现问题。在我的应用程序读取ADOQuery.next后,光标跳转到

end;
不能返回到
if not ADOQuery1.Eof then

我的代码出现任何错误?

+4

你应该使用'while'像'而不是ADOQuery1.Eof do' – RRUZ

+0

另外,你也应该让你的光标是第一个记录遍历这样'ADOQuery1前。首先;' – Fero

+2

@ Fero68,是的,这是一个很好的习惯,但在打开'Open'后立即就不必要了。 – MartynA

回答

4

执行不会返回到if语句,因为代码不会这样做。你有一个if语句并且没有迭代。你需要迭代。例如while循环:

while not ADOQuery1.Eof do begin 
    // do something 
    ADOQuery1.Next; 
end;