Freigeben über


srv_paramset (API für erweiterte gespeicherte Prozeduren)

Wichtiger HinweisWichtig

Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie so bald wie möglich das Ändern von Anwendungen, in denen es zurzeit verwendet wird. 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.

Rückgabewerte

SUCCEED, wenn der Parameterwert erfolgreich festgelegt wurde; andernfalls FAIL. FAIL wird zurückgegeben, wenn keine aktuelle remote gespeicherte Prozedur vorhanden ist, wenn kein remote gespeicherter n-Prozedurparameter vorhanden ist, wenn der Parameter kein Rückgabeparameter ist und wenn das len-Argument nicht zulässig ist.

Wenn len0 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 einem der Datentypen von Microsoft SQL Server 2005 entspricht.

Neue Datentypen

Länge der Rückgabedaten

BITN

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

ZERO: N/V

>=255: N/V

<255: N/V

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, data = 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 zwischen Clients und der Anwendung mit remote gespeicherten Prozeduren übergebene 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 ihre Rückgabewerte mit srv_paramset festgelegt wurden, automatisch an den Client gesendet, wenn srv_senddone mit 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 mit ihrem Namen und einige mit ihrer Position übergeben, so tritt ein Fehler auf. Der SRV_RPC-Handler wird trotzdem aufgerufen, doch es sind scheinbar keine Parameter vorhanden und srv_rpcparams gibt 0 zurück.

SicherheitshinweisSicherheitshinweis

Sie sollten den Quellcode der erweiterten gespeicherten Prozeduren gründlich überprüfen. Außerdem sollten Sie die kompilierten DLLs vor der Installation auf einem Produktionsserver testen. Weitere Informationen zum Überprüfen und Testen der Sicherheit finden Sie auf dieser Microsoft-Website.