看看,代码有问题,谁能看出来(50分)

  • 主题发起人 主题发起人 房客
  • 开始时间 开始时间

房客

Unregistered / Unconfirmed
GUEST, unregistred user!
看看,代码有问题,谁能看出来
是放在数据遍历中的
目的是取前后字段,反复修改调试结果都跳不出遍历(到最后第二个)
if (not query1.bof) and (not query1.eof) then
begin
query1.MoveBy(1);
title_next:=query1.Fieldbyname('ID').asstring;
query1.MoveBy(-2);
title_sub:=query1.Fieldbyname('ID').asstring;
query1.MoveBy(1);
end;
 
>> 目的是取前后字段,反复修改调试结果都跳不出遍历(到最后第二个)
是不是遍历有问题?
 
遍历没有问题,
一加上条件判断就出错:
if (not query1.bof) and (not query1.eof) then
 
if (not query1.bof) and (not query1.eof) then
begin
query1.MoveBy(1); //如果是最后一条,记录不移动,即移0

//移到最后一条记录query1.eof还是False,
// 执行query1.MoveBy(1)记录不移动,但query1.eof是True
if Query1.Eof then exit;

title_next:=query1.Fieldbyname('ID').asstring;
query1.MoveBy(-2); //记录 移 -2
title_sub:=query1.Fieldbyname('ID').asstring;
query1.MoveBy(1); //记录移1
end;

// 移0+ 移-2 +移1 = -1,呵呵 ,所以 到最后第二个 就永远了。
 
接受答案了.
 
后退
顶部