ASP调用sql server存储过程的技巧

2012 年 9 月 10 日6670

asp程序中使用sql server存储程是常见的事,主要的作用是提高程序运行的时间,这里介绍一下调用不同类型的存储程的方法。


一、最简单的调用


<%


Dim objConn


Set objConn = Server.CreateObject("ADOBD.Connection")


objConn.Open Application("Connection_String")


'Call the stored procedure to increment a counter on the page


objConn.Execute "exec sp_AddHit"


%>


没有参数,没有返回,没有错误处理,就是这个了


二、带参数的一种调用


<%


objConn.Execute "exec sp_AddHit,'http://www.aspbc.com', 1"


%>


注意分割参数,该方法也不返回记录


三、带返回记录集的


<%


Dim objConn


Dim objRs


Set objConn = Server.CreateObject("ADOBD.Connection")


Set objRs = Server.CreateObject("ADOBD.Recordset")


objConn.Open Application("Connection_String")


'Call the stored procedure to increment a counter on the page


objRs.Open objConn, "exec sp_ListArticles '1/15/2001'"


'Loop through recordset and display each article


%>


四、带参数和返回记录集的


<%


Dim objConn


Dim objCmd


'Instantiate objects


Set objConn = Server.CreateObject("ADODB.Connection")


set objCmd = Server.CreateObject("ADODB.Command")


conn.Open Application("ConnectionString")


With objCmd


.ActiveConnection = conn 'You can also just specify a connection string here


.CommandText = "sp_InsertArticle"


.CommandType = adCmdStoredProc 'Requires the adovbs.inc file or typelib meta tag


'Add Input Parameters


.Parameters.Append .CreateParameter("@columnist_id", adDouble, adParamInput, , columnist_id)


.Parameters.Append .CreateParameter("@url", adVarChar, adParamInput, 255, url)


.Parameters.Append .CreateParameter("@title", adVarChar, adParamInput, 99, url)


.Parameters.Append .CreateParameter("@description", adLongVarChar, _


adParamInput, 2147483647, description)


'Add Output Parameters


.Parameters.Append .CreateParameter("@link_id", adInteger, adParamOutput, , 0)


'Execute the function


'If not returning a recordset, use the adExecuteNoRecords parameter option


.Execute, , adExecuteNoRecords


link_id = .Parameters("@link_id")


End With


%>


五、存储程代码


Create PROCEDURE dbo.sp_InsertArticle



@columnist_id int,


@url varchar(255),


@title varchar(99),


@description text


@link_id int OUTPUT



AS


BEGIN


INSERT INTO dbo.t_link (columnist_id,url,title,description)


VALUES (@columnist_id,@url,@title,@description)


SELECT @link_id = @@IDENTITY


END

【责编:cc】

0 0