sql >> Databasteknik >  >> RDS >> Sqlserver

Returnera ett värde och en resultatuppsättning från lagrad procedure classic asp

Du gör det redan, kombinera de två.

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

Du behöver inte välja det ena eller det andra eftersom de är oberoende av varandra. Det enda problemet kommer att vara ordningen de returnerar, kom ihåg att både OUTPUT och RETURN värden kommer inte att vara tillgängliga förrän alla returnerade postuppsättningar är stängda.

Personligen föredrar jag att stänga dem direkt genom att lagra dem som 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



  1. SSIS API:Hur vet man vilket gränssnitt man ska casta ett __COMObject till?

  2. Vad är den maximala uttalandelängden i Oracle

  3. Kan du inte köra Insert and Select LAST_INSERT_ID() i samma fråga?

  4. synkronisera Microsoft Access-databas med Silverstripes webbplatsdatabas