2017-03-16 1 views
0
내 코드를 해결하기 위해 도움을 필요로

작동하지 query.next ...(델파이)

나는이 코드 나는 결과에 대한 2 개 데이터 기록이

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.next에서 문제점을 발견했습니다. 내 응용 프로그램이 ADOQuery.next를 읽은 후에 커서가

end;
으로 이동하면
if not ADOQuery1.Eof then
으로 돌아 가지 않습니다.

내 코드에는 어떤 오류가 있습니까?

+4

당신은 사용해야합니다'while' 같은'하지 ADOQuery1.Eof do' – RRUZ

+0

추가하는 동안, 당신은 또한이'ADOQuery1처럼 반복하기 전에 첫 번째 레코드에있을 커서를해야한다 .First;' – Fero

+2

@ Fero68 네, 들어가는 습관이 좋지만'Open' 호출 직후는 불필요합니다. – MartynA

답변

4

코드가 그렇게하지 않기 때문에 실행은 if 문으로 돌아 가지 않습니다. 하나의 if 문과 반복문이 없습니다. 반복해야합니다. while 루프와 예를 들어 :

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