내가 선택적 입력 매개 변수가있는 SQL 서버 2008 R2 데이터베이스에 저장 프로 시저와 같은 출력 매개 변수를 한 : 나는 SSMS에서 선택적 매개 변수없이 저장 프로 시저를 호출 할 때ADODB는 선택적 입력 매개 변수로 출력 매개 변수에 실패합니까?
CREATE PROCEDURE [dbo].[spCreateTicket]
(
@TrackingCode varchar(25),
@EmailAddress varchar(250) = null,
@Ticket varchar(1000),
@UserID int,
@TicketID int output
)
AS
SET NOCOUNT ON
INSERT INTO dbTicket (TrackingCode, EmailAddress, Ticket, UserID)
SELECT
@TrackingCode, @EmailAddress, @Ticket, @UserID
SELECT @TicketID = SCOPE_IDENTITY()
RETURN @TicketID
잘 작동 :
DECLARE @TicketID int
EXEC [dbo].[spCreateTicket]
@TrackingCode = 'xOCDUv289u403k5h24s5869vK',
@Ticket = 'Something broke!',
@UserID = 64307,
@TicketID = @TicketID OUTPUT
하지만이 같은 ASP 고전에서 ADODB를 통해 같은 일을하려고하면
는 아무것도하지 않습니다SET cmd = Server.CreateObject ("ADODB.Command")
cmd.ActiveConnection = HelpDeskConnection
cmd.CommandText = "spCreateTicket"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter ("@TrackingCode",adVarChar,adParamInput,25,RandomString(25))
cmd.Parameters.Append cmd.CreateParameter ("@Ticket",adVarChar,adParamInput,1000,Ticket)
cmd.Parameters.Append cmd.CreateParameter ("@UserID",adInteger,adParamInput, ,Session("UserID"))
cmd.Parameters.Append cmd.CreateParameter ("@TicketID",adInteger,adParamOutput)
cmd.Execute
TicketID = cmd.Parameters("@TicketID")
, 012 3,246,647,474,가 Empty
왼쪽되며, ADODB.Connection이 NativeError 8162이 포함되어
사용자 ID의 \ "이. 출력 매개 변수 만 요청 된 출력에 전달 된 실제 매개 변수로 선언되지 않았다"@ "\ 공식 매개 변수"
ADODB를 사용하여 선택적 매개 변수없이 항상 저장 프로 시저를 호출합니다. 이것은 ADODB의 알려진 결함입니까, 아니면 출력 매개 변수가있을 때 작동하도록 특정 작업을 수행해야합니까?