Partilhar via


srv_paramlen (API de procedimento armazenado estendido)

Aplica-se a:SQL Server

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Use a integração CLR em vez disso.

Retorna o comprimento de dados de um parâmetro de chamada de procedimento armazenado remoto. Essa função foi substituída pela função srv_paraminfo.

Sintaxe

  
int srv_paramlen (  
SRV_PROC *  
srvproc  
,  
int  
n   
);  

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. O primeiro parâmetro é 1.

Retornos

O comprimento real, em bytes, dos dados do parâmetro. Se não houver n-ésimo parâmetro nem procedimento armazenado remoto, o valor retornado será -1. Se o n-ésimo parâmetro for NULL, retornará 0.

Essa função retorna os seguintes valores, se o parâmetro for um dos seguintes tipos de dados de sistema do Microsoft SQL Server 2005 (9.x).

Novos tipos de dados Comprimento dos dados de entrada
BITN NULL: 1

ZERO: 1

>=255: N/A

<255: N/A
BIGVARCHAR NULL: 0

ZERO: 1

>=255: 255

<255: Len real
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 real
NCHAR NULL: 0

ZERO: 255

>=255: 255

<255: 255
NVARCHAR NULL: 0

ZERO: 1

>=255: 255

<255: Len real
NTEXT NULL: -1

ZERO: -1

>=255: -1

<255: -1

* len real = Comprimento da cadeia de caracteres multibyte (cch)

Comentários

Cada parâmetro de procedimento armazenado remoto tem um comprimento de dados real e um máximo. Para tipos de dados padrão de comprimento fixo que não permitem valores nulos, os comprimentos real e máximo são os mesmos. Para tipos de dados de comprimento de variável, os comprimentos podem variar. Por exemplo, um parâmetro declarado como varchar(30) pode ter dados de apenas 10 bytes de comprimento. O comprimento real do parâmetro é 10 e seu comprimento máximo é 30. A função srv_paramlen obtém o tamanho real de dados, em bytes, de um procedimento armazenado remoto. Para obter o tamanho máximo de dados de um parâmetro, use srv_parammaxlen.

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 O manipulador SRV_RPC ainda é chamado, mas aparece como se não houvesse parâmetros e srv_rpcparams retorna 0.

Importante

Você deve examinar totalmente o código-fonte de procedimentos armazenados estendidos e deve 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.

Confira também

srv_paraminfo (API de procedimento armazenado estendido)
srv_rpcparams (API de procedimento armazenado estendido)