반환 코드와 결과 집합을 모두 원래 ASP의 저장 프로 시저에서 다시 가져 오려고합니다. 저장된 프로 시저 클래식 ASP에서 값과 결과 집합을 반환
CREATE PROCEDURE CheckEmployeeId
@EmployeeName nvarchar(255)
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@Exists INT
, @RowCount Int = 0
, @ReturnValue Int = 1
SELECT EmployeeId FROM Employees WHERE Name = @EmployeeName
set @RowCount = @@ROWCOUNT
if (@RowCount <> 1)
BEGIN
SET @ReturnValue = 2
END
ELSE
BEGIN
SET @ReturnValue = 1
END
RETURN @ReturnValue
END
그래서 ASP에서 나는 반환 값
Set cmd = CreateObject("ADODB.Command")
with cmd
.ActiveConnection = cnnstr
.CommandType = adCmdStoredProc
.CommandText = "CheckEmployeeId"
.Parameters.Refresh
.Parameters("@EmployeeName") = EmployeeName
end with
cmd.Execute()
RetVal = cmd.Parameters("@RETURN_VALUE")
을 얻기 위해 다음 또는이 결과가 설정 얻을 할 수 있습니다.
Set cmd = CreateObject("ADODB.Command")
with cmd
.ActiveConnection = cnnstr
.CommandType = adCmdStoredProc
.CommandText = "CheckEmployeeId"
.Parameters.Refresh
.Parameters("@EmployeeName") = EmployeeName
Set rst = .Execute()
end with
두 가지 방법이 있습니까?
반환 값은 반환 값이 아닌 실행 상태 코드를 반환하기위한 것입니다. 프로 시저에서 값을 다시 받으려면 OUTPUT 매개 변수를 사용해야합니다. –
@SeanLange 그들은 실행 상태를 반환하기 위해 그것을 사용하고 있습니다. 레코드가 없으면 2, 일부 경우에는 1을 반환합니다. – Lankymart
@Lankymart 나는 정중하게 동의하지 않을 것이다. 실행 상태가 반환되지 않고 논리 값이 반환됩니다. 이것은 출력 매개 변수를 사용해야하는 좋은 예입니다. –