几例在ASP存储过程的使用方法(5)



Create Procedure Returnemploy

AS

select emp_id, fname from employee

If Exists(Select fname From employee Where fname=''Margaret'')

Return(1)

Else

Return(0) 

例wuf73.asp

% @LANGUAGE = VBScript %>

!--#include file="AdoSQL7.asp"-->

!--#include file="adovbs.inc"-->

% '' wuf73.asp

Dim cmdTest, prmTest, rsTest

Set cmdTest = Server.CreateObject("ADODB.Command")

cmdTest.ActiveConnection = Cnn

cmdTest.CommandText = "Returnemploy" ''存储过程名

cmdTest.CommandType = adCmdStoredProc


Set prmTest = cmdTest.CreateParameter("ReturnValue",adInteger,adParamReturnValue)

cmdTest.Parameters.Append prmTest


Set rsTest = cmdTest.Execute()

While Not rsTest.EOF

Response.Write rsTest(0) & " ][ " & rsTest(1) & " "

rsTest.MoveNext

Wend

rsTest.Close: Set rsTest = Nothing

''返回 cmdtest("ReturnValue") 之前,必须先关闭rsTest, 否则结果错误


If cmdtest("ReturnValue") = 1 Then

Response.Write "有该雇员"

Else

Response.Write "无该雇员"

End If 


Cnn.close

Set prmTest = Nothing

Set cmdTest = Nothing: Set Cnn = Nothing

%>


三、如何处理大数据

这里的“大数据”主要是指Text(大文本)和image(图像)字段,采用前面所述的方法无法正确获取其数据。必须首先使用Size = rsTest(0).ActualSize获取字段值的实际长度,然后再使用rsTest(0).GetChunk(Size)取得数据。在实际使用过程中,由于这些字段都比较大,为了节省、合理使用服务器资源,一般均采取分段读取的方法。例wuf74.asp:

% @LANGUAGE = VBScript %>

!--#include file="AdoSQL7.asp"-->

!--#include file="adovbs.inc"-->

% '' wuf74.asp

Dim StrSQL, rsTest

‘pr_info 是一个文本字段

StrSQL = "Select pr_info,pub_id From pub_info"

Set rsTest = Cnn.Execute(StrSQL)


Dim BasicSize, BeginSize, LText

Do While Not rsTest.EOF 

Response.Write rsTest(1) & " "

‘每次读取 1024字节

BasicSize = 1024

BeginSize = 0

While BeginSize rsTest(0).ActualSize

LText = rsTest(0).GetChunk(BasicSize)

BeginSize = BeginSize + BasicSize

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3699.html