gpt4 book ai didi

vbscript - 执行存储过程并返回结果集

转载 作者:行者123 更新时间:2023-12-04 21:56:00 24 4
gpt4 key购买 nike

我是一个完整的 VBScript 新手,我正在尝试执行一个存储过程并读取结果集。我使用在线文章尝试了多种不同的方法,但没有任何效果,我很难过。数据库是 SQL Server 2008 R2,应用程序是现成的 ERP 系统,但我可以向其中添加自己的代码。

我可以使用以下方法执行代码:

connection.execute"insert into blah blah blah"

我可以使用以下方法读取结果集:
Set objRS = CreateObject("ADODB.Recordset")

objRS.Open "select a, b, c FROM blahblah", Connection, adOpenStatic, adLockBatchOptimistic, adCmdText
If objRS.EOF = False Then
a = objRS.Fields("a").Value
b = objRS.Fields("b").Value
c = objRS.Fields("c").Value
End If
objRS.Close

有问题的存储过程实际上是一个选择语句,例如:
create procedure [dbname].[dbo].[sptestproc] 
as
@Option1 Varchar(10) = NULL,
@Option2 Varchar(10) = NULL
AS
BEGIN
select first, second
from table1
where a = @option1 and b = @toption2
End

到目前为止我的代码:
Dim sql

sql = "EXEC [dbname].[dbo].[sptestproc] '" & Opt1 & "','" & Opt2 & "'"
Set RS = CreateObject("ADODB.Recordset")
RS.Open sql, Connection, adOpenStatic, adLockBatchOptimistic, adCmdText
Do While Not RS.EOF
Call App.MessageBox("first",vbInformation,"Data updated")
Call App.MessageBox("second",vbInformation,"Data updated")
RS.MoveNext
Loop

但是我终生无法获得一个程序来执行和读取结果。

任何人都可以帮忙吗?

谢谢

最佳答案

adCmdText如果要执行存储过程,则用于 SQL 查询,则必须使用 adCmdStoredProc (取而代之的是值 4)

编辑:

'Set the connection
'...............

'Set the command
DIM cmd
SET cmd = Server.CreateObject("ADODB.Command")
SET cmd.ActiveConnection = Connection

'Set the record set
DIM RS
SET RS = Server.CreateObject("ADODB.recordset")

'Prepare the stored procedure
cmd.CommandText = "[dbo].[sptestproc]"
cmd.CommandType = 4 'adCmdStoredProc

cmd.Parameters("@Option1 ") = Opt1
cmd.Parameters("@Option2 ") = Opt2

'Execute the stored procedure
SET RS = cmd.Execute
SET cmd = Nothing

'You can now access the record set
if (not RS.EOF) THEN
first = RS("first")
second = RS("second")
end if

'dispose your objects
RS.Close
SET RS = Nothing

Connection.Close
SET Connection = Nothing

关于vbscript - 执行存储过程并返回结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19706258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com