delphi操作sqlserver怎么实现每页只显示50条或者100条这种分页的功能

delphi操作sqlserver如何实现每页只显示50条或者100条这种分页的功能?
delphi操作sqlserver如何实现每页只显示50条或者100条这种分页的功能?

------解决方案--------------------
前段时间写的一个演示,不是非常完善。
其实就是用了Select top 50 * from 表

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids;

type
TForm1 = class(TForm)
Conn: TADOConnection;
BtnConn: TButton;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
DBGrid1: TDBGrid;
BtnNext: TButton;
BtnFront: TButton;
BtnFirst: TButton;
procedure BtnConnClick(Sender: TObject);
procedure BtnNextClick(Sender: TObject);
procedure BtnFrontClick(Sender: TObject);
procedure BtnFirstClick(Sender: TObject);
private
{ Private declarations }
procedure PageFirst;//类方法
procedure PageScroll;//类方法
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

const
PerPage = 5; //每页显示5条记录
var
Page : integer = 1;

procedure TForm1.BtnConnClick(Sender: TObject);
begin
//ADOConnection连接,略
end;

procedure TForm1.PageFirst;
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Text := 'select top ' + IntToStr(PerPage) + ' * from 表 order by ID ';
open;
end;
Page := 1;
end;

procedure TForm1.PageScroll;
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Text := 'select top ' + IntToStr(PerPage) + ' * from 表 where ID not in (select top ' + IntToStr((Page) * PerPage) + ' ID from 表 order by ID) order by ID ';
open;
end;
end;

procedure TForm1.BtnFirstClick(Sender: TObject);//连接后,首先点击此“第一页”按钮
begin
PageFirst;
end;

procedure TForm1.BtnNextClick(Sender: TObject);//“下一页”
begin
PageScroll;
Inc(Page);
end;

procedure TForm1.BtnFrontClick(Sender: TObject);//“前一页”
begin
if Page = 0 then begin PageFirst; Page := 1; exit; end;
PageScroll;
Dec(Page);
end;

end.