ASP執行儲存過程經驗談

2021-09-05 17:38:20 字數 2628 閱讀 7063

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