Partilhar via


sp_OAGetProperty (Transact-SQL)

Aplica-se a:SQL Server

Obtém um valor de propriedade de um objeto OLE.

Transact-SQL convenções de sintaxe

Sintaxe

sp_OAGetProperty objecttoken , propertyname
    [ , propertyvalue OUTPUT ]
    [ , index... ]
[ ; ]

Argumentos

Importante

Os argumentos para procedimentos armazenados estendidos devem ser inseridos na ordem específica, conforme descrito na seção de sintaxe. Se os parâmetros forem inseridos fora de ordem, ocorrerá uma mensagem de erro.

objecttoken

O token de objeto de um objeto OLE que foi criado anteriormente usando sp_OACreate.

propriedade

O nome da propriedade do objeto OLE a ser retornado.

propertyvalue OUTPUT

O valor da propriedade retornada. Se especificado, deve ser uma variável local do tipo de dados apropriado.

Se a propriedade retornar um objeto OLE, propertyvalue deverá ser uma variável local do tipo de dados int. Um token de objeto é armazenado na variável local e esse token de objeto pode ser usado com outros procedimentos armazenados de automação OLE.

Se a propriedade retornar um único valor:

  • especificar uma variável local para propertyvalue, que retorna o valor da propriedade na variável local; quer
  • Não especifique propertyValue, que retorna o valor da propriedade para o cliente como um conjunto de resultados de coluna única e linha única.

Quando a propriedade retorna uma matriz, se propertyvalue for especificado, ela será definida como NULL.

Se propertyvalue for especificado, mas a propriedade não retornar um valor, ocorrerá um erro. Se a propriedade retornar uma matriz com mais de duas dimensões, ocorrerá um erro.

índice

Um parâmetro de índice. Se especificado, índice deve ser um valor do tipo de dados apropriado.

Algumas propriedades têm parâmetros. Essas propriedades são chamadas de propriedades indexadas e os parâmetros são chamados de parâmetros de índice. Uma propriedade pode ter vários parâmetros de índice.

Observação

Os parâmetros para este procedimento armazenado são especificados por posição, não por nome.

Valores de código de retorno

0 (êxito) ou um número diferente de zero (falha) que é o valor inteiro do HRESULT retornado pelo objeto de automação OLE.

Para obter mais informações sobre códigos de retorno HRESULT, consulte códigos de retorno de automação OLE e informações de erro.

Conjunto de resultados

Se a propriedade retornar uma matriz com uma ou duas dimensões, a matriz será retornada ao cliente como um conjunto de resultados:

  • Uma matriz unidimensional é retornada ao cliente como um conjunto de resultados de linha única com tantas colunas quantas forem os elementos na matriz. Em outras palavras, a matriz é retornada como colunas.

  • Uma matriz bidimensional é retornada ao cliente como um conjunto de resultados com tantas colunas quantos forem os elementos na primeira dimensão da matriz e com tantas linhas quantos forem os elementos na segunda dimensão da matriz. Em outras palavras, a matriz é retornada como (colunas, linhas).

Quando um valor de retorno de propriedade ou valor de retorno de método é uma matriz, sp_OAGetProperty ou sp_OAMethod retorna um conjunto de resultados para o cliente. (Os parâmetros de saída do método não podem ser matrizes.) Esses procedimentos examinam todos os valores de dados na matriz para determinar os tipos de dados e comprimentos de dados apropriados do SQL Server a serem usados para cada coluna do conjunto de resultados. Para uma coluna específica, esses procedimentos usam o tipo de dados e o comprimento necessários para representar todos os valores de dados nessa coluna.

Quando todos os valores de dados em uma coluna compartilham o mesmo tipo de dados, esse tipo de dados é usado para toda a coluna. Quando os valores de dados em uma coluna são de tipos de dados diferentes, o tipo de dados da coluna inteira é escolhido com base no gráfico a seguir.

Int flutuar dinheiro datetime Varchar Nvarchar
int int flutuar dinheiro varchar varchar nvarchar
flutuar flutuar flutuar dinheiro varchar varchar nvarchar
dinheiro dinheiro dinheiro dinheiro varchar varchar nvarchar
datetime varchar varchar varchar datetime varchar nvarchar
varchar varchar varchar varchar varchar varchar nvarchar
nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar

Comentários

Você também pode usar sp_OAMethod para obter um valor de propriedade.

Permissões

Requer associação ao sysadmin função de servidor fixa ou permissão de execução diretamente neste procedimento armazenado. A opção Ole Automation Procedures configuração do servidor deve ser habilitada para usar qualquer procedimento do sistema relacionado à automação OLE.

Exemplos

Um. Usar uma variável local

O exemplo a seguir obtém a propriedade HostName (do objeto SQLServer criado anteriormente) e a armazena em uma variável local.

DECLARE @property AS VARCHAR (255);

EXECUTE
    @hr = sp_OAGetProperty
    @object,
    'HostName',
    @property OUTPUT;

IF @hr <> 0
BEGIN
    EXECUTE sp_OAGetErrorInfo @object;
    RETURN;
END

PRINT @property;

B. Usar um conjunto de resultados

O exemplo a seguir obtém a propriedade HostName (do objeto SQLServer criado anteriormente) e a retorna ao cliente como um conjunto de resultados.

EXECUTE
    @hr = sp_OAGetProperty
    @object,
    'HostName';

IF @hr <> 0
BEGIN
    EXECUTE sp_OAGetErrorInfo @object;
    RETURN;
END