1,利用sql server游標,這種方法的優點:適用性比較強,效能不是很好.儲存過程如下:
create proc sp_pageview
@sql varchar(
8000
), ---
sql語句
@pagecurnum
int=
1,
---當前頁,如果為空則為第一頁
@pagesize
int=
10---
每頁行數,黑認為10
asset
nocount on
declare @cur
int,@rowcount
int,@pagestartrow
int,@pagecount
int--
計算出一共有多少條資料
exec sp_cursoropen @cur output,@sql,@scrollopt=1
,@ccoppt=1
,@rowcount
=@rowcount output
--計算出有多少頁
set@pagecount
=ceiling(
1.0*
@rowcount
/@pagesize)
--如果當前頁大於最大頁時
if@pagecurnum
>
@pagecount
begin
set@pagecurnum
=@pagecount
set@pagestartrow
=(@pagecount-1
)*@pagesize+1
endelse
begin
set@pagestartrow
=(@pagecurnum-1
)*@pagesize+1
endselect @pagecount
aspagecount,@rowcount
asrowscount,@pagecurnum
aspagecurnum
exec sp_cursorfetch @cur,
16,@pagestartrow,@pagesize
exec sp_cursorclose @cur
setnocount offgo
在asp中執行的呼叫的程式碼如下:
'前面定義好sql語句,例如sql="
select * from table"'
定議頁面和pagesize
'this_page=self_url or "?"
this_pagesize
=pagesize_30
'對pagenum進行分析p=
request("p
")ifisnumeric
(p)
thenp=
clng
(p)if
p<=
0thenp=
1elsep=
1endif'
建立物件
setrs
=server.createobject(
"adodb.recordset")
setconn
=opendb()
'聯接資料庫
setcmd
=server.createobject(
"adodb.command")
with
cmd.activeconnection
=conn
'conn是聯接資料庫字串
.commandtext ="
sp_pageview"'
儲存過程名稱
.commandtype =4
'說明這是乙個儲存過程
.prepared
=true
'要求要命預編譯
"@sql",
200,1,
8000
"@pagecurnum",
3,1,
4"@pagesize",
3,1,
4,this_pagesize)
setrs
=.execute
endwith
setrs
=rs.nextrecordset()
'因為第一資料集是乙個空的 如果驅動用的是oledb的時候則需要這一句
'如果是sql server的話則不需要這一句
rcount
=clng
(rs(1))
allpage
=clng
(rs(0))
setrs
=rs.nextrecordset()
ifnot
rs.eof
then
'接下來的瀏覽資料
要注意的是聯接資料庫的字元建議最好用oledb,用oledb的時候要注意的是,儲存過程執行後返回的結果有三個結果集,其中第乙個是乙個空間的結果集,而第二個是資料數和頁數以及當前頁的乙個表,最後是我們要瀏覽的結果集.
而如果你用sql server來聯接資料庫的時候,不知道什麼原因,有時候會有資料沒有辦法顯示出來,還沒有弄明白是為什麼!!!
asp學習入門經驗談
一.vbscript語法簡介 vbscript語句是一種基於vb的一種指令碼語言,主要用於web伺服器端的程式開發,我們 這裡只介紹一些簡單的語句,主要是運算元據庫的幾種常見的語句 1 vbscript的標識 語句 2 定義變數dim語句 dim a,b a 10 b ok 注意 注意 定義的變數可...
asp學習入門經驗談
一.vbscript語法簡介 vbscript語句是一種基於vb的一種指令碼語言,主要用於web伺服器端的程式開發,我們 這裡只介紹一些簡單的語句,主要是運算元據庫的幾種常見的語句 1 vbscript的標識 語句 2 定義變數dim語句 dim a,b a 10 b ok 注意 注意 定義的變數可...
SQL 語言執行效率經驗談
讀取表1中第2列 col2 資料的總和,且其第1列資料存在於表2的第1列中。1.使用in的sql語句 select sum col2 from tab1 where col1 in select col1 from tab2 2.使用exists的sql語句 select sum col2 from...