(Delphi)query.next不工作

(Delphi)query.next不工作,delphi,tadoquery,Delphi,Tadoquery,我需要帮助来修复我的代码 我尝试用这段代码构建一些应用程序 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').AsStrin

我需要帮助来修复我的代码

我尝试用这段代码构建一些应用程序

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;
我有两个数据记录的结果,但为什么只有一个备注显示

我试图追踪它,发现了ADOQuery1中的问题。下一步。在我的应用程序读取ADOQuery.next后,光标跳到末尾;如果不是,请不要返回1.Eof then

end; if not ADOQuery1.Eof then
我的代码有错误吗?

执行不会返回if语句,因为代码没有这样做。您只有一条if语句,没有迭代。你需要迭代。例如,使用while循环:

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

执行不会返回if语句,因为代码没有这样做。您只有一条if语句,没有迭代。你需要迭代。例如,使用while循环:

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

您应该使用
while
like
while而不是ADOQuery1.Eof do
另外,在像这样迭代之前,您还应该使光标位于第一条记录上
ADOQuery1.first
@Fero68,是的,这是一个很好的习惯,但是在调用
Open
之后不需要立即这样做。你应该使用
while
而不是ADOQuery1。如果你要做
额外的事情,你也应该在像这样迭代之前将光标放在第一条记录上@Fero68,是的,这是一个很好的习惯,但是在调用
Open
之后,就不需要了。