Condividi tramite


srv_paramlen (API delle stored procedure estese)

Si applica a: SQL Server

Importante

Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Usare invece l'integrazione 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 dell'API Stored procedure estesa 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 nessun parametro n o nessuna 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 (9.x).

Nuovi tipi di dati Lunghezza dei dati di input
BITN NULL: 1

ZERO: 1

>=255: N/A

<255: N/D
BIGVARCHAR NULL: 0

ZERO: 1

>=255: 255

<255: 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: len effettivo
NCHAR NULL: 0

ZERO: 255

>=255: 255

<255: 255
NVARCHAR NULL: 0

ZERO: 1

>=255: 255

<255: len effettivo
NTEXT NULL: -1

ZERO: -1

>=255: -1

<255: -1

* actual len = Length of multibyte character string (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) può ad esempio contenere dati con lunghezza pari 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, usare 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 invece 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.

Importante

È 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 della sicurezza, visitare questo sito Web Microsoft.

Vedi anche

srv_paraminfo (API Stored procedure estesa)
srv_rpcparams (API Stored procedure estesa)