sybase分頁儲存過程的實現

2021-06-22 04:49:23 字數 2003 閱讀 9280

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...