Condividi tramite


srv_paramset (API Stored procedure estesa)

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.

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.

Restituisce

SUCCEED se il valore del parametro è stato impostato correttamente; in caso contrario, FAIL. FAIL viene restituito se non esiste una stored procedure remota corrente, in assenza del parametro n della stored procedure remota, quando il parametro non è un parametro restituito e quando 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.

Nuovi tipi di dati

Lunghezza dei dati restituiti

BITN

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

ZERO: N/A

>=255: N/A

<255: N/A

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 utilizzare 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 una chiamata alla stored procedure remota viene effettuata con i 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 ancora 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.