Compartilhar via


srv_paramset (API de procedimento armazenado estendido)

Observação importanteImportante

Esse recurso será removido em uma versão futura do Microsoft SQL Server. Não utilize esse recurso em desenvolvimentos novos e modifique, assim que possível, os aplicativos que atualmente o utilizam. Use a integração CLR em vez disso.

Define o valor de um parâmetro de retorno de chamada do procedimento armazenado remoto. Esta função foi substituída pela função srv_paramsetoutput.

Sintaxe


int srv_paramset (
SRV_PROC *
srvproc
,
int
n
, 
void *
data
,
int
len 
);

Argumentos

  • srvproc
    É um ponteiro para a estrutura SRV_PROC que identifica uma conexão de cliente específica (nesse caso, o identificador que recebeu a chamada do procedimento armazenado remoto). A estrutura contém informações que a biblioteca de APIs de procedimento armazenado estendido usa para gerenciar a comunicação e os dados entre o aplicativo e o cliente.

  • n
    Indica o número do parâmetro a ser definido. O primeiro parâmetro é 1.

  • data
    É um ponteiro para o valor dos dados a ser enviado de volta ao cliente como o parâmetro de retorno do procedimento armazenado remoto.

  • len
    Especifica o comprimento dos dados a serem retornados. Se o tipo de dados do parâmetro tiver um comprimento constante e não permitir valores nulos (por exemplo, srvbit ou srvint1), len será ignorado.

Retorna

SUCCEED se o valor do parâmetro tiver sido definido com êxito; caso contrário, FAIL. FAIL será retornado quando não houver procedimentos armazenados remotos atuais, quando não houver parâmetros de procedimento armazenado remoto nth, quando o parâmetro não for um parâmetro de retorno e quando o argumento len não for válido.

Se len for 0, NULL será retornado. Definir len como 0 é o único modo de retornar NULL ao cliente.

Esta função retornará os valores a seguir, se o parâmetro for um dos tipos de dados do Microsoft SQL Server 2005.

Novos tipos de dados

Comprimento dos dados de retorno

BITN

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

ZERO: N/A

>=255: N/A

<255: N/A

BIGVARCHAR

NULL:len = 0, dados = IG, RET = 1

ZERO:len = IG, dados = IG, RET = 0

>=255:len = max8k, dados = valid, RET = 0

<255:len = <8k, dados = valid, RET = 1

BIGCHAR

NULL:len = 0, dados = IG, RET = 1

ZERO:len = IG, dados = IG, RET = 0

>=255:len = max8k, dados = valid, RET = 0

<255:len = <8k, dados = valid, RET = 1

BIGBINARY

NULL:len = 0, dados = IG, RET = 1

ZERO:len = IG, dados = IG, RET = 0

>=255:len = max8k, dados = valid, RET = 0

<255:len = <8k, dados = valid, RET = 1

BIGVARBINARY

NULL:len = 0, dados = IG, RET = 1

ZERO:len = IG, dados = IG, RET = 0

>=255:len = max8k, dados = valid, RET = 0

<255:len = <8k, dados = valid, RET = 1

NCHAR

NULL:len = 0, dados = IG, RET = 1

ZERO:len = IG, dados = IG, RET = 0

>=255:len = max8k, dados = valid, RET = 0

<255:len = <8k, dados = valid, RET = 1

NVARCHAR

NULL:len = 0, dados = IG, RET = 1

ZERO:len = IG, dados = IG, RET = 0

>=255:len = max8k, dados = valid, RET = 0

<255:len = <8k, dados = valid, RET = 1

NTEXT

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

ZERO:len = IG, dados = IG, RET = 0

>=255:len = IG, dados = IG, RET = 0

<255:len = IG, dados = IG, RET = 0

RET = Valor de retorno de srv_paramset

 

IG = Valor será ignorado

 

valid = Qualquer ponteiro válido para dados

 

Comentários

Os parâmetros contêm dados passados entre os clientes e o aplicativo com procedimentos armazenados remotos. O cliente pode especificar certos parâmetros como parâmetros de retorno. Esses parâmetros de retorno podem conter valores que o aplicativo servidor Open Data Services devolve ao cliente. Usar parâmetros de retorno equivale a passar parâmetros por referência.

Você não pode definir o valor de retorno para um parâmetro que não foi invocado como um parâmetro de retorno. Você pode usar srv_paramstatus para determinar como o parâmetro foi chamado.

Esta função define o valor de retorno para um parâmetro, mas não envia o valor de retorno ao cliente. Todos os parâmetros de retorno, independentemente se seus valores de retorno foram ou não definidos com srv_paramset, serão automaticamente enviados ao cliente quando srv_senddone for chamado com o sinalizador de status SRV_DONE_FINAL definido.

Quando uma chamada de procedimento armazenado remoto é feita com parâmetros, os parâmetros podem ser passados pelo nome ou pela posição (sem nome). Se a chamada de procedimento armazenado remoto for feita com alguns parâmetros transmitidos pelo nome e outros pela posição, ocorrerá um erro. O manipulador SRV_RPC ainda será chamado, mas aparecerá como se não houvesse parâmetros e srv_rpcparams retornará 0.

Observação sobre segurançaObservação sobre segurança

Você deve examinar cuidadosamente o código-fonte de procedimentos armazenados estendidos e testar as DLLs compiladas antes de instalá-las em um servidor de produção. Para obter informações sobre revisão e testes de segurança, consulte este site da Microsoft.