Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Връща стойност и набор от резултати от запомнена процедура класически asp

Вече го правите, просто комбинирайте двете.

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")

Не е необходимо да избирате едното или другото, те са независими едно от друго. Единственият проблем ще бъде редът, който връщат, не забравяйте, че и двете OUTPUT и RETURN стойностите няма да бъдат достъпни, докато всички върнати набори от записи не бъдат затворени.

Лично аз предпочитам да ги затворя веднага, като ги съхраня като двумерни масиви.

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Възстановяване на основната база данни на SQL Server

  2. Отложена издръжливост в SQL Server 2014

  3. JSON в SQL Server

  4. Как да конвертирате разделен със запетая списък в редове в SQL Server

  5. Грешка при обработка на командата try-catch на SQL (SQL Server 2008)