sp_OAGetProperty (Transact-SQL)

Obtiene el valor de una propiedad de un objeto OLE.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • objecttoken
    Es el token de un objeto OLE creado anteriormente con sp_OACreate.

  • propertyname
    Es el nombre de la propiedad del objeto OLE que se devolverá.

  • propertyvalueOUTPUT
    Es el valor devuelto de la propiedad. Si se especifica, debe ser una variable local del tipo de datos adecuado.

    Si la propiedad devuelve un objeto OLE, propertyvalue debe ser una variable local del tipo de datos int. En la variable local se almacena un token de objeto que se puede utilizar con otros procedimientos almacenados de automatización OLE.

    Si la propiedad devuelve un solo valor, especifique una variable local para propertyvalue, lo que devolverá el valor de la propiedad en la variable local, o no especifique propertyvalue, lo que devolverá el valor de la propiedad al cliente como un conjunto de resultados de una columna y una fila.

    Cuando la propiedad devuelve una matriz, si se especifica propertyvalue, se establece en NULL.

    Si se especifica propertyvalue, pero la propiedad no devuelve un valor, se produce un error. Si la propiedad devuelve una matriz con más de dos dimensiones, se produce un error.

  • index
    Es un parámetro de índice. Si se especifica index, debe ser un valor del tipo de datos adecuado.

    Algunas propiedades tienen parámetros. Estas propiedades se llaman propiedades indizadas y los parámetros se llaman parámetros de índice. Una propiedad puede tener varios parámetros de índice.

    [!NOTA]

    Los parámetros de este procedimiento almacenado se especifican por la posición, no por el nombre.

Valores de código de retorno

0 (correcto) o un valor distinto de cero (error) que es el valor entero del HRESULT devuelto por el objeto de automatización OLE.

Para obtener más información acerca de los códigos de retorno HRESULT, vea Códigos de retorno e información de error de automatización OLE.

Conjuntos de resultados

Si la propiedad devuelve una matriz con una o dos dimensiones, la matriz se devuelve al cliente como un conjunto de resultados:

  • Se devuelve al cliente una matriz unidimensional como conjunto de resultados de una fila con tantas columnas como elementos tenga la matriz. En otras palabras, la matriz se devuelve como columnas.

  • Se devuelve al cliente una matriz bidimensional como conjunto de resultados con tantas columnas como elementos haya en la primera dimensión de la matriz y con tantas filas como elementos haya en la segunda dimensión de la matriz. En otras palabras, la matriz se devuelve como (columnas, filas).

Cuando un valor devuelto de una propiedad o un método es una matriz, sp_OAGetProperty o sp_OAMethod devuelve un conjunto de resultados al cliente. (Los parámetros de salida del método no pueden ser matrices.) Estos procedimientos recorren todos los valores de datos de la matriz para determinar los tipos de datos y las longitudes de datos de SQL Server adecuados para cada columna del conjunto de resultados. Para una columna determinada, estos procedimientos utilizan el tipo y la longitud de datos necesarios para representar todos los valores de los datos de la columna.

Cuando todos los valores de datos de una columna comparten el mismo tipo de datos, se utiliza ese tipo para toda la columna. Cuando los valores de datos de una columna utilizan tipos de datos diferentes, el tipo de datos de toda la columna se elige como se muestra a continuación.

 

int

float

money

datetime

varchar

nvarchar

int

int

float

money

varchar

varchar

nvarchar

float

float

float

money

varchar

varchar

nvarchar

money

money

money

money

varchar

varchar

nvarchar

datetime

varchar

varchar

varchar

datetime

varchar

nvarchar

varchar

varchar

varchar

varchar

varchar

varchar

nvarchar

nvarchar

nvarchar

nvarchar

nvarchar

nvarchar

nvarchar

nvarchar

Notas

También puede utilizar sp_OAMethod para obtener un valor de propiedad.

Permisos

Debe pertenecer a la función fija de servidor sysadmin.

Ejemplos

A. Usar una variable local

En el ejemplo siguiente se obtiene la propiedad HostName (del objeto SQLServer creado previamente) y se almacena en una variable local.

DECLARE @property varchar(255)
EXEC @hr = sp_OAGetProperty @object, 'HostName', @property OUT
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object
    RETURN
END
PRINT @property

B. Usar un conjunto de resultados

En el ejemplo siguiente se obtiene la propiedad HostName (del objeto SQLServer creado previamente) y se devuelve al cliente como un conjunto de resultados.

EXEC @hr = sp_OAGetProperty @object, 'HostName'
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object
    RETURN
END