我用的数据库是ado+sql 2000,现在我从数据库中取出数据显示在dbgrid中之后,默认的是所有的数据都显示在一个页面中了,如果我有很多数据的话,查找起来很不方便的。
能否让dbgrid分页显示数据哪?让我可以指定每次一个页面中显示几个,然后点击一个“上一页”,“下一页”等等的按钮来分开显示数据?
能否让dbgrid分页显示数据哪?让我可以指定每次一个页面中显示几个,然后点击一个“上一页”,“下一页”等等的按钮来分开显示数据?
解决方案 »
- 快速拷贝ADODataSet里的Data?
- 请问下大家,正版的DELPHI7在哪里有得卖呢?还有价格是多少呢?谢谢
- 急急急! 不规则 EXCEL 导入到数据库!
- 如何判断SQL中一个表是否存在.如何判断SQL是否已启动,如何屏蔽DELPHI自己的错误提示,如联接一个不存在的表
- 哪位大哥有支持同时ansi 和 vt100的telnet组件?
- 用Socket传输文件,点对点已经可以了,但是点对多不知道如何实现
- 走了,非常感谢各位半年来的帮助
- 高分求助:专家们不妨看一下,如何在delphi中调CryptoAPI?
- 有一个Image1控件,当鼠标进入时显示一幅图片,鼠标离开时显示另一幅图片。
- delphi+mssql2005+三层开发问题
- 关于mdi程序中子窗口的问题?
- [100分] access数据库对文本字段分类求和.
可以用PageControl啊,在每个Page里放一个DBGrid。
单独在dbgrid中不能实现吗?
需要设置变量来记录:总页数,当前页数......
好像不能,可以做成按钮(TButton)形式,点"下一页"或"上一页"就出来新的一页了.
需要设置变量来记录:总页数,当前页数......
这样也可以啊,哈哈给个代码看看好吗?
procedure TLogManage.DSELECT(num_per, cur_num, total: Integer); //num_per,每页记录条数,cut_num,当前页数
begin
if num_per * cur_num <= total then
begin
DM.dstlog.Active := False;
DM.dstlog.CommandText := 'select * from LOGTABLE where lid in (select top ' + inttostr(num_per) + ' lid from LOGTABLE where lid in (select top ' +
inttostr((cur_num) * num_per) + ' lid from LOGTABLE order by lid asc) order by lid desc)order by lid asc';
DM.dstlog.Active := True;
end
else begin
DM.dstlog.Active := False;
DM.dstlog.CommandText := 'select * from LOGTABLE where lid in (select top ' + inttostr(total - (cur_num - 1) * num_per) +
' lid from LOGTABLE order by lid desc) order by lid asc';
DM.dstlog.Active := True;
end;
end;procedure TLogManage.MSELECT(num_per, cur_num, total: Integer; fieldname: string);
begin
if num_per * cur_num <= total then
begin
DM.dstlog.Active := False;
DM.dstlog.CommandText := 'select * from LOGTABLE where lid in (select top ' + inttostr(num_per) + ' lid from LOGTABLE where lid in (select top ' + inttostr((cur_num) * num_per) +
' lid from LOGTABLE where lmodule=''' + fieldname + '''order by lid asc) and lmodule=''' + fieldname + '''order by lid desc) order by lid asc';
DM.dstlog.Active := True;
end
else begin
DM.dstlog.Active := False;
DM.dstlog.CommandText := 'select * from LOGTABLE where lid in (select top ' + inttostr(total - (cur_num - 1) * num_per) +
' lid from LOGTABLE where lmodule=''' + fieldname + ''' order by lid desc) order by lid asc';
DM.dstlog.Active := True;
end;
end;基本思路是用SQL语句控制的。