srv_paramset (API Stored procedure estesa)
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.
Imposta il valore di un parametro restituito di chiamata a una stored procedure remota. Questa funzione è stata sostituita dalla funzione srv_paramsetoutput.
Sintassi
int srv_paramset (
SRV_PROC *
srvproc
,
int
n
,
void *
data
,
int
len
);
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 da impostare. Il primo parametro è 1.
data
Puntatore al valore dei dati da inviare di nuovo al client come parametro restituito della stored procedure remota.
len
Specifica la lunghezza effettiva dei dati da restituire. Se il tipo di dati del parametro ha una lunghezza costante e non consente valori Null (ad esempio, srvbit o srvint1), len viene ignorato.
Valori restituiti
SUCCEED se il valore del parametro è stato impostato correttamente; in caso contrario, FAIL. Restituisce FAIL se non esiste una stored procedure remota corrente, se non è presente il parametro n della stored procedure remota, se il parametro non è un parametro restituito o se l'argomento len non è valido.
Se len è 0, restituisce NULL. L'impostazione di len su 0 è l'unico modo per restituire NULL al client.
Questa funzione restituisce i valori seguenti, se il parametro è uno dei tipi di dati di Microsoft SQL Server 2005 (9.x).
Nuovi tipi di dati | Lunghezza dei dati restituiti |
---|---|
BITN | NULL: len = 0, data = IG, RET = 0 ZERO: N/D >=255: N/A <255: N/D |
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 = valore restituito di srv_paramset | |
IG = il valore verrà ignorato | |
valid = qualsiasi puntatore valido ai dati |
Osservazioni:
I parametri contengono i dati passati tra i client e l'applicazione con stored procedure remote. Il client può specificare determinati parametri come parametri restituiti. Questi parametri restituiti possono contenere valori che l'applicazione del server Open Data Services passa nuovamente al client. L'utilizzo di parametri restituiti è analogo al passaggio di parametri per riferimento.
Non è possibile impostare il valore restituito per un parametro non richiamato come parametro restituito. È possibile usare srv_paramstatus per determinare la modalità di richiamo del parametro.
Questa funzione imposta il valore restituito per un parametro ma non lo invia effettivamente al client. Tutti i parametri restituiti, indipendentemente dal fatto che i relativi valori restituiti siano stati impostati con srv_paramset, vengono inviati automaticamente al client quando srv_senddone viene chiamato con il flag di stato SRV_DONE_FINAL impostato.
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.