您的位置:首页 > 编程语言 > Delphi

Delphi调用SQL分页存储过程实例

2012-12-22 17:44 357 查看
-Delphi7调用过程开始

//----Delphi7调用过程开始----------------------------------------------------------------------------------------

首先在 public 中定义 i, RsCount: integer;
在frmMain中放置一个dbgrid , datasource, AdoStoredProc [name->sp], 和4个 Button, 设置好相关连接!

procedure TfrmMain.btnFirstClick(Sender: TObject);
begin
i := 1;
sp.ProcedureName := 'PageShowOne;1';
sp.Close;
sp.Parameters.ParamByName('@PageSize').Value := 50;
sp.Parameters.ParamByName('@PageCurrent').Value := i;
sp.Parameters.ParamByName('@FdName').Value := '图纸编号';
sp.Parameters.ParamByName('@SelectStr').Value := '图纸编号,模具形状一,模具形状二,模具形状三,最大高度,最大宽度,重量,有无波面,螺丝孔数';
sp.Parameters.ParamByName('@FromStr').Value := 'tuzhi';
sp.Parameters.ParamByName('@WhereStr').Value := '';
sp.Parameters.ParamByName('@OrderByStr').Value := '日期';
sp.Open;
Label1.Caption := '记录总数:'+IntToStr(sp.Parameters.ParamValues['@CountRows']);
Label2.Caption := '总页数:'+IntToStr(sp.Parameters.ParamValues['@CountPage']);
RsCount := sp.Parameters.ParamValues['@CountPage'];
Label3.Caption := '第 '+IntToStr(i)+ ' 页';
end;

procedure TfrmMain.btnNextClick(Sender: TObject);
begin
if i >= RsCount then
ShowMessage('已经是最后一页!')
else
i := i + 1;
sp.ProcedureName := 'PageShowOne;1';
sp.Close;
sp.Parameters.ParamByName('@PageSize').Value := 50;
sp.Parameters.ParamByName('@PageCurrent').Value := i;
sp.Parameters.ParamByName('@FdName').Value := '图纸编号';
sp.Parameters.ParamByName('@SelectStr').Value := '图纸编号,模具形状一,模具形状二,模具形状三,最大高度,最大宽度,重量,有无波面,螺丝孔数';
sp.Parameters.ParamByName('@FromStr').Value := 'tuzhi';
sp.Parameters.ParamByName('@WhereStr').Value := '';
sp.Parameters.ParamByName('@OrderByStr').Value := '日期';
sp.Open;
Label3.Caption := '第 '+IntToStr(i)+ ' 页';
end;

procedure TfrmMain.btnPriorClick(Sender: TObject);
begin
if i > 1 then
i := i - 1
else ShowMessage('已经是第一页了!');
sp.ProcedureName := 'PageShowOne;1';
sp.Close;
sp.Parameters.ParamByName('@PageSize').Value := 50;
sp.Parameters.ParamByName('@PageCurrent').Value := i;
sp.Parameters.ParamByName('@FdName').Value := '图纸编号';
sp.Parameters.ParamByName('@SelectStr').Value := '图纸编号,模具形状一,模具形状二,模具形状三,最大高度,最大宽度,重量,有无波面,螺丝孔数';
sp.Parameters.ParamByName('@FromStr').Value := 'tuzhi';
sp.Parameters.ParamByName('@WhereStr').Value := '';
sp.Parameters.ParamByName('@OrderByStr').Value := '日期';
sp.Open;
Label3.Caption := '第 '+IntToStr(i)+ ' 页';
end;

procedure TfrmMain.btnLastClick(Sender: TObject);
begin
i := RsCount;
sp.ProcedureName := 'PageShowOne;1';
sp.Close;
sp.Parameters.ParamByName('@PageSize').Value := 50;
sp.Parameters.ParamByName('@PageCurrent').Value := i;
sp.Parameters.ParamByName('@FdName').Value := '图纸编号';
sp.Parameters.ParamByName('@SelectStr').Value := '图纸编号,模具形状一,模具形状二,模具形状三,最大高度,最大宽度,重量,有无波面,螺丝孔数';
sp.Parameters.ParamByName('@FromStr').Value := 'tuzhi';
sp.Parameters.ParamByName('@WhereStr').Value := '';
sp.Parameters.ParamByName('@OrderByStr').Value := '日期';
sp.Open;
Label3.Caption := '第 '+IntToStr(i)+ ' 页';
end;
//--------------调用结束-------------------------------------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: