srv_paramlen (API de Procedimentos Armazenados Estendidos)

Aplica-se a: SQL Server

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. Usa antes a integração CLR.

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

Syntax

  
int srv_paramlen (  
SRV_PROC *  
srvproc  
,  
int  
n   
);  

Arguments

srvproc
É um ponteiro para a estrutura SRV_PROC que é o handle para uma ligação cliente particular (neste caso, o handle que recebeu a chamada remota ao procedimento armazenado). A estrutura contém informação que a biblioteca da API de Procedimentos Armazenados Estendidos utiliza para gerir a comunicação e os dados entre a aplicação e o cliente.

n
Indica o número do parâmetro. O primeiro parâmetro é 1.

Devoluções

O comprimento real, em bytes, dos dados do parâmetro. Se não houver um parâmetro n-ésimoou um procedimento armazenado remoto, devolve -1. Se o n-ésimoparâmetro for NULO, devolve 0.

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

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

ZERO: 1

>=255: N/D

<255: N/D
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)

Observações

Cada parâmetro de procedimento armazenado remoto tem um comprimento real e um comprimento máximo de dados. 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 variável, os comprimentos podem variar. Por exemplo, um parâmetro declarado como varchar(30) pode ter dados com apenas 10 bytes. O comprimento real do parâmetro é 10 e o seu comprimento máximo é 30. A função srv_paramlen obtém o comprimento real dos dados, em bytes, de um procedimento armazenado remotamente. Para obter o comprimento máximo de dados de um parâmetro, use srv_parammaxlen.

Quando é feita uma chamada remota de procedimento armazenado com parâmetros, estes podem ser passados por nome ou por posição (não nomeada). Se a chamada remota ao procedimento armazenado for feita com alguns parâmetros passados pelo nome e outros passados pela posição, ocorre um erro. O handler de SRV_RPC continua a ser chamado, mas parece que não houve parâmetros e srv_rpcparams devolve 0.

Importante

Deves rever cuidadosamente o código-fonte dos procedimentos armazenados estendidos e deves testar as DLLs compiladas antes de as instalares num servidor de produção. Para informações sobre revisão e testes de segurança, consulte este site da Microsoft.