sybase分頁儲存過程應該如何實現呢?這是很多人都提到的問題,下面就為您介紹
sybase
分頁儲存過程的寫法,希望可以讓您對sybase分頁儲存過程有更多的了解。
create procedure sp_php_page @qry varchar(16384),@istart int, @ilimit int, @skeyfiled varchar(32) as
/*@qry sql語句, @istart 開始, @ilimit 結束,@skeyfiled 表中的主鍵 */
begin
declare @execsql varchar(16384)
declare @execsqltmp varchar(16384)
/*定義臨時表表名*/
declare @dt varchar(10) --生成臨時表的隨機數
set @dt=substring(convert(varchar, rand()), 3, 10) --乙個字元型的隨機數
set rowcount @ilimit
if(@skeyfiled is null)
begin
set @execsql = stuff(@qry,charindex('select',@qry),6,'select number(*) as sybid,')
set @execsqltmp = ' select * from #temptable' + @dt + ' where sybid>' || convert(varchar,@istart) || ' and sybid <= ' || convert(varchar,(@istart/@ilimit+1)*@ilimit)
end
else
begin
set @execsql = stuff(@qry,charindex('select',@qry),6,'select number(*) as sybid,' || @skeyfiled || ' ,@' )
set @execsql = stuff(@execsql,charindex(',@',@execsql),charindex('from',@execsql)-charindex(',@',@execsql),'' )
set @execsqltmp = ' select '|| @skeyfiled ||' from #temptable' + @dt + ' where sybid>' || convert(varchar,@istart) || ' and sybid <= ' || convert(varchar,(@istart/@ilimit+1)*@ilimit)
set @execsqltmp = stuff(@qry,charindex('where',@qry),5,' where '|| @skeyfiled || ' in ('|| @execsqltmp ||') and ')
end
set @execsql = stuff(@execsql, charindex('from',@execsql),4,'into #temptable' + @dt + ' from')
select (@execsql) as sql, @execsqltmp as sqltmp
set rowcount 0
end
呼叫
$ssql = " exec sp_php_page '$ssql',$istart,$ilimit,'iid'";
$prow = $this->m_hdb->getresult ( $ssql );
$this->m_hdb->excute ( $prow->sql );
$pdata = $this->m_hdb->select($prow->sqltmp);
reference:
儲存過程實現sybase分頁
create procedure test p ipage int,num int as ipage 頁碼,num 每頁的記錄數 begin declare maxpages int,rcount int maxpages 最大頁碼 if ipage 100 select maxpages ceil...
Sybase分頁顯示儲存過程
實現sybase分頁顯示儲存過程是我們經常會遇到的問題,下面就對sybase分頁顯示儲存過程的方法進行詳細介紹,供您參考。建立乙個web應用,分頁瀏覽功能必不可少。這個問題是資料庫處理中十分常見的問題。經典的資料分頁方法是 ado 紀錄集分頁法,也就是利用ado自帶的分頁功能 利用游標 來實現分頁。...
sybase分頁的實現
create procedure splitpage sybase qry varchar 16384 ipage int,num int,maxpages int 5000 as qry sql 語句,ipage 頁數,num 每頁記錄條數,maxpages 最大查詢頁數 begin declar...