Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Restituisce un valore e un set di risultati da stored procedure classic asp

Lo stai già facendo, combina i due.

Set cmd = CreateObject("ADODB.Command")
with cmd
    .ActiveConnection = cnnstr
    .CommandType = adCmdStoredProc
    .CommandText = "CheckEmployeeId"
    .Parameters.Refresh
    .Parameters("@EmployeeName") = EmployeeName
    Set rst = .Execute()
end with
'You will need to close the Recordset before returning the RETURN_VALUE.
RetVal = cmd.Parameters("@RETURN_VALUE")

Non è necessario scegliere l'uno o l'altro perché sono indipendenti l'uno dall'altro. L'unico problema sarà l'ordine che restituiscono, ricorda che entrambi OUTPUT e RETURN i valori non saranno accessibili fino alla chiusura di tutti i recordset restituiti.

Personalmente, preferisco chiuderli subito archiviandoli come 2 Dimensional Arrays.

Set cmd = CreateObject("ADODB.Command")
with cmd
    .ActiveConnection = cnnstr
    .CommandType = adCmdStoredProc
    .CommandText = "CheckEmployeeId"
    .Parameters.Refresh
    .Parameters("@EmployeeName") = EmployeeName
    Set rst = .Execute()
    If Not rst.EOF Then data = rst.GetRows()
    Call rst.Close()
end with
RetVal = cmd.Parameters("@RETURN_VALUE")

'Access Recordset array
If IsArray(data) Then
  'Return first column, first row.
  Response.Write data(0, 0)
End If