Sql 如何使用asp classic调用存储过程?
我正在使用sql server和asp classic,目前正在调用以下查询:Sql 如何使用asp classic调用存储过程?,sql,stored-procedures,asp-classic,Sql,Stored Procedures,Asp Classic,我正在使用sql server和asp classic,目前正在调用以下查询: newHireSQL = "select * from NewHire where Archived = 0 order by HireID desc" Set rsGetHireID = Server.CreateObject("ADODB.Recordset") rsGetHireID.Open newHireSQL,ConnectionString,adOpenStatic NumOfHireID = rs
newHireSQL = "select * from NewHire where Archived = 0 order by HireID desc"
Set rsGetHireID = Server.CreateObject("ADODB.Recordset")
rsGetHireID.Open newHireSQL,ConnectionString,adOpenStatic
NumOfHireID = rsGetHireID.RecordCount
Set objCommand = Server.CreateObject("ADODB.Command")
objCommand.ActiveConnection = ConnectionString
objCommand.CommandText = "dbo.sp_selectNewHireSQL"
objCommand.CommandType = adCmdStoredProc ' you have to include adovbs.inc file or you can use 4
Set rsGetHireID = objCommand.Execute()
NumOfHireID = rsGetHireID.RecordCount
Response.Write (NumOfHireID)
但是我不想在这里使用query语句,而是想调用一个名为dbo.sp_selectNewHireSQL
的存储过程。我该怎么做
谢谢
编辑:
我试过这个
Dim Conn
SET Conn = Server.CreateObject("ADODB.Connection")
SET rsGetHireID = Server.CreateObject("ADODB.RecordSet")
Conn.Open ConnectionString
set rsGetHireID=Conn.Execute("Exec sp_selectNewHireSQL")
NumOfHireID = rsGetHireID.RecordCount
Response.Write (NumOfHireID)
但是我得到了记录计数的
-1
值。它只是使用exec
或execute
语句:
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConnectionString
Conn.Execute "Exec sp_selectNewHireSQL"
参考:要使RecordCount正常工作,您需要使用正确的光标:
Set rsGetHireID=Server.CreateObject(“ADODB.RecordSet”)
连接开放连接字符串
rsGetHireID.CursorLocation=3'adUseClient
rsGetHireID.打开“Exec sp_selectNewHireSQL”,康涅狄格州
NumOfHireID=rsGetHireID.RecordCount
不要使用
ADODB.Connection
,尝试使用ADODB.Command
如下:
newHireSQL = "select * from NewHire where Archived = 0 order by HireID desc"
Set rsGetHireID = Server.CreateObject("ADODB.Recordset")
rsGetHireID.Open newHireSQL,ConnectionString,adOpenStatic
NumOfHireID = rsGetHireID.RecordCount
Set objCommand = Server.CreateObject("ADODB.Command")
objCommand.ActiveConnection = ConnectionString
objCommand.CommandText = "dbo.sp_selectNewHireSQL"
objCommand.CommandType = adCmdStoredProc ' you have to include adovbs.inc file or you can use 4
Set rsGetHireID = objCommand.Execute()
NumOfHireID = rsGetHireID.RecordCount
Response.Write (NumOfHireID)
我用你的建议更新了我原来的帖子,但是我的记录是-1。回答不好。这会使您暴露于Sql注入。传递到存储过程的参数在哪里?我在原始SQL字符串中看到一个参数(值为0):newHireSQL=“select*from NewHire where Archived=0 order by HireID desc”