Condividi tramite


srv_paramlen (API delle stored procedure estese)

Nota importanteImportante

Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Non utilizzare questa caratteristica in un nuovo progetto di sviluppo e modificare non appena possibile le applicazioni in cui è attualmente implementata. Utilizzare invece la funzionalità di integrazione con CLR.

Restituisce la lunghezza dei dati di un parametro di chiamata a una stored procedure remota. Questa funzione è stata sostituita dalla funzione srv_paraminfo.

Sintassi


int srv_paramlen (
SRV_PROC *
srvproc
,
int
n 
);

Argomenti

  • srvproc
    Puntatore alla struttura SRV_PROC che rappresenta l'handle di una determinata connessione client. In questo caso, l'handle che ha ricevuto la chiamata alla stored procedure remota. La struttura contiene informazioni utilizzate dalla libreria di API delle stored procedure estese per gestire le comunicazioni e i dati tra l'applicazione e il client.

  • n
    Indica il numero del parametro. Il primo parametro è 1.

Valori restituiti

Lunghezza effettiva in byte dei dati del parametro. Se non è presente alcun parametro n o alcuna stored procedure remota, restituisce -1. Se il parametro n è NULL, restituisce 0.

Questa funzione restituisce i valori seguenti, se il parametro è uno dei tipi di dati di sistema di Microsoft SQL Server 2005 seguenti.

Nuovi tipi di dati

Lunghezza dei dati di input

BITN

NULL: 1

ZERO: 1

>=255: N/D

<255: N/D

BIGVARCHAR

NULL: 0

ZERO: 1

>=255: 255

<255: valore len effettivo

BIGCHAR

NULL: 0

ZERO: 255

>=255: 255

<255: 255

BIGBINARY

NULL: 0

ZERO: 255

>=255: 255

<255: 255

BIGVARBINARY

NULL: 0

ZERO: 1

>=255: 255

<255: valore len effettivo

NCHAR

NULL: 0

ZERO: 255

>=255: 255

<255: 255

NVARCHAR

NULL: 0

ZERO: 1

>=255: 255

<255: valore len effettivo

NTEXT

NULL: -1

ZERO: -1

>=255: -1

<255: -1

*   Valore len effettivo = Lunghezza della stringa di carattere multibyte (cch)

Osservazioni

Ogni parametro di stored procedure remota ha una lunghezza massima e una lunghezza effettiva dei dati. Per i tipi di dati a lunghezza fissa standard che non consentono valori Null, le due lunghezze coincidono. Per i tipi di dati a lunghezza variabile, le lunghezze possono essere diverse. Un parametro dichiarato come varchar(30), ad esempio, può includere dati con lunghezza pari solo a 10 byte. La lunghezza effettiva del parametro è 10, mentre la lunghezza massima è 30. La funzione srv_paramlen ottiene la lunghezza effettiva dei dati in byte di una stored procedure remota. Per ottenere la lunghezza massima dei dati di un parametro, utilizzare srv_parammaxlen.

Quando viene effettuata una chiamata a una stored procedure remota con parametri, tali parametri possono essere passati per nome o per posizione (senza nome). Se la chiamata alla stored procedure remota viene effettuata con alcuni parametri passati per nome e altri passati per posizione, si verifica un errore. Il gestore SRV_RPC viene comunque chiamato, ma risulta che non sono presenti parametri e srv_rpcparams restituisce 0.

Nota sulla sicurezzaNota sulla sicurezza

È necessario esaminare con attenzione il codice sorgente delle stored procedure estese e testare le DLL compilate prima di installarle in un server di produzione. Per informazioni sui test e sull'analisi di protezione, visitare questo sito Web Microsoft.