MYSQL 支持 "select * from table limit 每页记录数 offset 页号" 的查询语句,这样就已经分页了,只有把 每页记录数 和 页号传递就OK了
alexzhang00(三角猫) 好: 你能把完整的代码写出来吗?求求你了。
我写个大略吧:procedure FillListView(pageNo, pageSize: integer;lstView: TListView); var i, offset: integer; sqlStr: string; begin lstView.ListItems.Clear; if pageSize <= 0 then Exit; if pageNo <= 0 then offset := 0 else offset := (pageNo - 1) * pageSize; sqlStr ;= 'select * from [tablename] limit ' + IntToStr(pageSize) + ' offset ' + IntToStr(offset) + ' order by id desc'; adoQuery.SQL.Clear; adoQuery.SQL.Text := sqlStr; adoQuery.Open; if adoQuery.Eof then adoQuery.Close else begin for i := 0 to adoQuery.RecordCount - 1 do begin With lstView.ListItems.Add do begin Caption := adoQuery.Fields[0].AsString; SubItems.Add(adoQuery.Fields[1].AsString); end; adoQuery.Next; end; adoQuery.Close; end; end; //设 adoQuery 为全局变量或外层变量,并且已连接数据库
问一下ASP的程序员们
看他们是怎么实现的
然后将思路引用到DELPHI中来就可以啦
具体我没有做过~
我的意思是数据库用MYSQL+ADO分页查询的例子。学习中想看看代码。求大哥大姐帮帮我。
好:
你能把完整的代码写出来吗?求求你了。
var
i, offset: integer;
sqlStr: string;
begin
lstView.ListItems.Clear;
if pageSize <= 0 then Exit;
if pageNo <= 0 then
offset := 0
else
offset := (pageNo - 1) * pageSize; sqlStr ;= 'select * from [tablename] limit ' + IntToStr(pageSize) + ' offset ' + IntToStr(offset) + ' order by id desc';
adoQuery.SQL.Clear;
adoQuery.SQL.Text := sqlStr;
adoQuery.Open;
if adoQuery.Eof then
adoQuery.Close
else
begin
for i := 0 to adoQuery.RecordCount - 1 do
begin
With lstView.ListItems.Add do
begin
Caption := adoQuery.Fields[0].AsString;
SubItems.Add(adoQuery.Fields[1].AsString);
end;
adoQuery.Next;
end;
adoQuery.Close;
end;
end;
//设 adoQuery 为全局变量或外层变量,并且已连接数据库
你太好,太伟大了。我连问了几天都没有人回答我。太感谢你了。5555555555 太激动了。