srv_paramset (API für erweiterte gespeicherte Prozeduren)

Gilt für:SQL Server

Wichtig

Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Verwenden Sie stattdessen die CLR-Integration.

Legt den Wert eines Aufrufrückgabeparameters für eine remote gespeicherte Prozedur fest. Diese Funktion wurde durch die srv_paramsetoutput-Funktion ersetzt.

Syntax

  
int srv_paramset (  
SRV_PROC *  
srvproc  
,  
int  
n  
,   
void *  
data  
,  
int  
len   
);  

Argumente

srvproc
Ist ein Zeiger auf die SRV_PROC-Struktur, die das Handle für eine bestimmte Clientverbindung ist (in diesem Fall das Handle, das den Aufruf der remote gespeicherten Prozedur erhalten hat). Die Struktur enthält Informationen, mit der die API-Bibliothek für erweiterte gespeicherte Prozeduren die Kommunikation und Daten zwischen der Anwendung und dem Client verwaltet.

n
Gibt die Nummer des festzulegenden Parameters an. Der erste Parameter ist 1.

data
Ist ein Zeiger auf den Datenwert, der als Rückgabeparameter der remote gespeicherten Prozedur zurück an den Client gesendet werden soll.

len
Gibt die tatsächliche Länge der zurückzugebenden Daten an. Wenn der Datentyp des Parameters eine konstante Länge aufweist und keine NULL-Werte zulässt (z.B. srvbit oder srvint1), wird len ignoriert.

Gibt zurück

SUCCEED, wenn der Parameterwert erfolgreich festgelegt wurde; andernfalls FAIL. Es wird FAIL zurückgegeben, wenn es keine aktuelle remote gespeicherte Prozedur oder keinen n-ten Parameter für die remote gespeicherte Prozedur gibt, oder wenn der Parameter kein Rückgabeparameter oder das len-Argument ungültig ist.

Wenn len 0 ist, wird NULL zurückgegeben. len auf 0 festzulegen ist die einzige Möglichkeit, NULL an den Client zurückzugeben.

Diese Funktion gibt die folgenden Werte zurück, wenn der Parameter einer der Datentypen Microsoft SQL Server 2005 (9.x) ist.

Neue Datentypen Länge der Rückgabedaten
BITN NULL: len = 0, data = IG, RET = 0

ZERO: NICHT ZUTREFFEND

>=255: N/A

<255: NICHT ZUTREFFEND
BIGVARCHAR NULL: len = 0, data = IG, RET = 1

ZERO: len = IG, data = IG, RET = 0

>=255:len = max8k, data = valid, RET = 0

<255:len = <8k, data = valid, RET = 1
BIGCHAR NULL: len = 0, data = IG, RET = 1

ZERO: len = IG, data = IG, RET = 0

>=255:len = max8k, data = valid, RET = 0

<255:len = <8k, data = valid, RET = 1
BIGBINARY NULL: len = 0, data = IG, RET = 1

ZERO: len = IG, data = IG, RET = 0

>=255:len = max8k, data = valid, RET = 0

<255:len = <8k, data = valid, RET = 1
BIGVARBINARY NULL: len = 0, data = IG, RET = 1

ZERO: len = IG, data = IG, RET = 0

>=255:len = max8k, data = valid, RET = 0

<255:len = <8k, data = valid, RET = 1
NCHAR NULL: len = 0, data = IG, RET = 1

ZERO: len = IG, data = IG, RET = 0

>=255:len = max8k, data = valid, RET = 0

<255:len = <8k, data = valid, RET = 1
NVARCHAR NULL: len = 0, data = IG, RET = 1

ZERO: len = IG, data = IG, RET = 0

>=255:len = max8k, data = valid, RET = 0

<255:len = <8k, data = valid, RET = 1
NTEXT NULL: len = IG, data = IG, RET = 0

ZERO: len = IG, data = IG, RET = 0

>=255:len = IG, Daten = IG, RET = 0

<255:len = IG, data = IG, RET = 0
RET = Rückgabewert von srv_paramset
IG = Wert wird ignoriert
valid = ein beliebiger gültiger Zeiger auf Daten

Hinweise

Parameter enthalten die zwischen Clients und der Anwendung mit remote gespeicherten Prozeduren übergebenen Daten. Der Client kann bestimmte Parameter als Rückgabeparameter angeben. Diese Rückgabeparameter können Werte enthalten, die die Open Data Services-Anwendung wieder an den Client übergibt. Die Verwendung von Rückgabeparametern entspricht der Übergabe von Parametern nach Verweis.

Sie können den Rückgabewert für einen Parameter nicht festlegen, der nicht als Rückgabeparameter aufgerufen wurde. Verwenden Sie srv_paramstatus, um zu bestimmen, wie der Parameter aufgerufen wurde.

Diese Funktion legt zwar den Rückgabewert für einen Parameter fest, sendet den Rückgabewert jedoch nicht an den Client. Alle Rückgabeparameter werden unabhängig davon, ob die Rückgabewerte mit srv_paramset festgelegt wurden, automatisch an den Client gesendet, wenn srv_senddone mit dem festgelegtem Statusflag „SRV_DONE_FINAL“ aufgerufen wird.

Wenn eine remote gespeicherte Prozedur mit Parametern aufgerufen wird, werden die Parameter entweder mit ihrem Namen oder mit ihrer Position übergeben (unbenannt). Werden beim Aufruf einer remote gespeicherten Prozedur einige Parameter über ihren Namen und andere über ihre Position übergeben, so tritt ein Fehler auf. Der SRV_RPC-Handler wird trotzdem aufgerufen, scheinbar jedoch ohne Parameter, und srv_rpcparams gibt 0 (null) zurück.

Wichtig

Sie sollten den Quellcode der erweiterten gespeicherten Prozeduren sorgfältig prüfen, und Sie sollten die kompilierten DLL-Dateien testen, bevor Sie sie auf einem Produktionsserver installieren. Weitere Informationen zum Überprüfen und Testen der Sicherheit finden Sie auf dieser Microsoft-Website.

Weitere Informationen

srv_paramsetoutput (API für erweiterte gespeicherte Prozeduren)