srv_paramset (API de procedimento armazenado estendido)
Importante |
---|
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ç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. |