Freigeben über


srv_paramdata (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.

Gibt den Wert eines Aufrufparameters für eine remote gespeicherte Prozedur zurück. Diese Funktion wurde durch die srv_paraminfo-Funktion ersetzt.

Syntax


void * srv_paramdata (
SRV_PROC *
srvproc
,
int
n 
);

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 Bibliothek für erweiterte gespeicherte Prozeduren die Daten und Kommunikation zwischen der Anwendung und dem Client verwaltet.

  • n
    Entspricht der Nummer des Parameters. Die erste Parameternummer ist 1.

Rückgabewerte

Ein Zeiger auf den Parameterwert. Ist der n-Parameter NULL, ist kein n-Parameter vorhanden, oder ist keine remote gespeicherte Prozedur vorhanden, wird NULL zurückgegeben. Wenn der Parameterwert eine Zeichenfolge ist, kann er nicht NULL-terminiert sein. Verwenden Sie srv_paramlen, um die Länge der Zeichenfolge zu bestimmen.

Diese Funktion gibt die folgenden Werte zurück, wenn der Parameter einem der Datentypen von Microsoft SQL Server entspricht. Zeigerdaten umfassen, ob der Zeiger für den Datentyp gültig (VP), NULL oder nicht anwendbar (N/V) ist, sowie den Inhalt der Daten, auf die der Zeiger verweist.

Neue Datentypen

Länge der Eingabedaten

BITN

NULL: VP, NULL

ZERO: VP, NULL

>=255: N/V

<255: N/V

BIGVARCHAR

NULL: NULL, N/V

ZERO: VP, NULL

>=255: VP, 255 Zeichen

<255: VP, tatsächliche Daten

BIGCHAR

NULL: NULL, N/V

ZERO: VP, 255 Leerzeichen

>= 255: VP, 255 Zeichen

<255: VP, tatsächliche Daten + Leerstellen (bis zu 255)

BIGBINARY

NULL: NULL, N/V

ZERO: VP, 255 0x00

>=255: VP, 255 Byte

<255: VP, tatsächliche Daten + Leerstellen (bis zu 255)

BIGVARBINARY

NULL: NULL, N/V

ZERO: VP, 0x00

>=255: VP, 255 Byte

<255: VP, tatsächliche Daten

NCHAR

NULL: NULL, N/V

ZERO: VP, 255 Leerzeichen

>=255: VP, 255 Zeichen

<255: VP, tatsächliche Daten + Leerstellen (bis zu 255)

NVARCHAR

NULL: NULL, N/V

ZERO: VP, NULL

>=255: VP, 255 Zeichen

<255: VP, tatsächliche Daten

NTEXT

NULL: N/V

ZERO: N/V

>=255: N/V

<255: N/V

* Daten sind nicht NULL-terminiert; bei Abschneiden von Daten >255 Zeichen wird keine Warnung ausgegeben.

Hinweise

Wenn Sie den Parameternamen wissen, können Sie srv_paramnumber verwenden, um die Parameternummer abzurufen. Um zu bestimmen, ob ein Parameter NULL ist, verwenden Sie srv_paramlen.

Wenn eine remote gespeicherte Prozedur mit Parametern aufgerufen wird, werden die Parameter mit ihrem Namen oder mit ihrer Position übergeben (unbenannt). Werden beim Aufruf einer remote gespeicherte Prozedur einige Parameter mit ihrem Namen und einige mit ihrer Position übergeben, so tritt ein Fehler auf. Bei Auftreten eines Fehlers wird der SRV_RPC-Handler 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.