请教一个有点难度的问题,关于ADO方面的。(50分)

  • 主题发起人 主题发起人 大花鸡
  • 开始时间 开始时间

大花鸡

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟在写一个程序时用到了ADOInt的Recordset来进行分页显示,比如把PageSize设为100,
可是问题来了:如果有222条记录,这样再显示第三页时就会出错,因为第三页的数据不足
100条,这个问题如何处理?
 
将你的程序贴出来看看。
 
var
iCount:integer;
Rs:ADOInt.Recordset;
ListItem:TListItem;
State:String;
begin
frmMain.lv1.Items.BeginUpdate;
frmMain.lv1.Items.Clear;

Rs:=ADOQuery1.Recordset;
for iCount:=1 to 100 do
begin
with frmMain do
begin
ListItem:=Lv1.Items.Add;
ListItem.Caption:=rs.Fields.Get_Item('ID').Value;
ListItem.SubItems.Add(rs.Fields.Get_Item('Subject').Value);
ListItem.SubItems.Add(rs.Fields.Get_Item('UserFrom').Value);
ListItem.SubItems.Add(rs.Fields.Get_Item('ReplyTimes').Value);
case rs.Fields.Get_Item('Status').Value of
0: State:= '待答';
1: State:= '讨论中';
2: State:= '已答';
else State := '其它';
end;
ListItem.SubItems.Add(State);
ListItem.SubItems.Add(rs.Fields.Get_Item('DateTime').Value);
ListItem.SubItems.Add(rs.Fields.Get_Item('Points').Value);
rs.MoveNext;
end;
end;
frmMain.lv1.Items.EndUpdate;
 
for iCount:=1 to 100 do
begin
if rs.Eof then break; //加上这个!
 
谢谢了,我感觉自己好像白痴 哟。渐愧
 
后退
顶部