Share via


srv_describe (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.

Define o nome da coluna e os tipos de dados da origem e do destino de uma coluna específica em sequência.

Sintaxe

  
int srv_describe (  
SRV_PROC *  
srvproc  
,  
int  
colnumber  
,  
DBCHAR *  
column_name  
,  
int  
namelen  
,  
DBINT  
desttype  
,  
DBINT  
destlen  
,  
DBINT  
srctype  
,  
DBINT  
srclen  
,  
void *  
srcdata  
);  

Argumentos

srvproc
Trata-se de um ponteiro para a estrutura SRV_PROC, que é o identificador de uma conexão de cliente específica (nesse caso, o cliente que envia a linha). A estrutura contém todas as informações que a biblioteca de APIs de Procedimento Armazenado Estendido usa para gerenciar as comunicações e os dados entre o aplicativo e o cliente.

colnumber
Atualmente ele não tem suporte. As colunas devem ser descritas em ordem. Todas as colunas devem ser descritas antes de srv_sendrow ser chamado.

column_name
Especifica o nome da coluna à qual pertencem os dados. Esse parâmetro pode ser NULL, porque não é obrigatório que uma coluna tenha um nome.

namelen
Especifica o tamanho, em bytes, de column_name. Se namelen for SRV_NULLTERM, column_name deverá terminar em nulo.

desttype
Especifica o tipo de dados da coluna da linha de destino. Trata-se do tipo de dados enviado ao cliente. O tipo de dados deve ser especificado mesmo se os dados forem NULL, para obter mais informações, consulte Tipos de dados (API de procedimento armazenado estendido).

destlen
Especifica o comprimento, em bytes, dos dados a serem enviados ao cliente. Para tipos de dados de comprimento fixo que não permitem valores nulos, destlen é ignorado. Para tipos de dados de comprimento variável e tipos de dados de comprimento fixo que permitem valores nulos, destlen especifica o tamanho máximo que os dados de destino podem ter.

srctype
Especifica o tipo dos dados de origem.

srclen
Especifica o comprimento, em bytes, dos dados de origem. Esse valor é ignorado em tipos de dados de comprimento fixo.

srcdata
Fornece o endereço dos dados de origem de uma determinada coluna. Quando srv_sendrow é chamado, ele procura os dados de colnumber em srcdata. Por isso, ele não deve ser liberado antes de uma chamada para srv_sendrow. O endereço dos dados de origem pode ser alterado entre chamadas para srv_sendrow, usando srv_setcoldata. A memória alocada para srcdata não deve ser liberada até que os dados da coluna sejam substituídos por outra chamada para srv_setcoldata ou até que srv_senddone seja chamado.

Caso desttype seja SRVDECIMAL ou SRVNUMERIC, o parâmetro srcdata deverá ser um ponteiro para uma estrutura DBNUMERIC ou DBDECIMAL com os campos de precisão e escala da estrutura já definidos com os valores desejados. É possível usar DEFAULTPRECISION para especificar uma precisão padrão, e DEFAULTSCALE para especificar uma escala padrão.

Retornos

O número da coluna descrita. A primeira coluna é a coluna 1. Caso ocorra um erro, retorna 0.

Comentários

A função srv_describe deve ser chamada uma vez a cada coluna na linha antes da primeira chamada a srv_sendrow. As colunas de uma linha podem ser descritas em qualquer ordem.

Para alterar o local e o tamanho dos dados de origem nas linhas da coluna antes de o conjunto de resultados completo ser enviado, use srv_setcoldata e srv_setcollen, respectivamente.

Para obter uma descrição dos tipos de dados e conversões de tipo de dados da API de Procedimento de Repositório Estendido, consulte Tipos de dados (API de Procedimento Armazenado Estendido).

Caso o nome da coluna do aplicativo esteja em Unicode, você precisará convertê-lo na página de código multibyte do servidor antes de chamar srv_describe. Para obter mais informações, consulte Páginas de código do servidor e dados Unicode.

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_sendrow (API de procedimento armazenado estendido)
srv_setutype (API de procedimento armazenado estendido)
srv_setcoldata (API de procedimento armazenado estendido)