sp_OAGetProperty (Transact-SQL)

Получает значение свойства объекта OLE.

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

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

Аргументы

  • objecttoken
    Маркер объекта OLE, ранее созданного с помощью sp_OACreate.

  • propertyname
    Возвращаемое имя свойства объекта OLE.

  • propertyvalueOUTPUT
    Значение возвращаемого свойства. Если значение указано, оно должно быть локальной переменной соответствующего типа данных.

    Если свойство возвращает объект OLE, аргумент propertyvalue должен быть локальной переменной и иметь тип int. Маркер объекта сохранен в локальной переменной. Этот маркер может использоваться другими хранимыми процедурами OLE-автоматизации.

    Если свойство возвращает одно значение, то либо определите локальную переменную для аргумента propertyvalue, чтобы возвратить значение свойства в локальной переменной, либо не определяйте аргумент propertyvalue и верните значение свойства клиенту как результирующий набор из одного столбца и одной строки.

    Если свойство возвращает массив и аргумент propertyvalue определен, то оно установлено в NULL.

    Если аргумент propertyvalue определен, но свойство не возвращает значение, то возникает ошибка. Если свойство возвращает массив более двух измерений, то возникает ошибка.

  • index
    Индексный параметр. Если значение указано, то аргумент index должен быть величиной соответствующего типа данных.

    Некоторые свойства имеют параметры. Эти свойства называются индексированными свойствами, а параметры — индексными параметрами. Свойство может иметь несколько индексных параметров.

    ПримечаниеПримечание

    Параметры для данной хранимой процедуры задаются по позиции, а не по имени.

Значения кодов возврата

0 (успешное завершение) или ненулевое число (неуспешное завершение), которое является целочисленным значением типа HRESULT, возвращаемого объектом OLE-автоматизации.

Дополнительные сведения о кодах возврата типа HRESULT см. в разделе Коды возврата и сведения об ошибках OLE-автоматизации.

Результирующие наборы

Если свойство возвращает массив с одним или двумя измерениями, то массив возвращается клиенту как результирующий набор.

  • Одномерный массив возвращается клиенту как результирующий набор, состоящий из одной строки, в которой число столбцов соответствует количеству элементов массива. Иными словами, массив возвращается в виде набора столбцов.

  • Двумерный массив возвращается клиенту в виде результирующего набора с числом столбцов, равным числу элементов первого измерения массива, и числом строк, равным числу элементов второго измерения массива. Иными словами, массив возвращается в виде (столбцы, строки).

Если возвращаемое значение свойства или метода является массивом, процедура sp_OAGetProperty или sp_OAMethod возвращает клиенту результирующий набор. (Выходные параметры метода не могут быть массивами.) Эти процедуры просматривают все значения в массиве для определения подходящих типов данных SQL Server и их длин для каждого столбца результирующего набора. Для каждого отдельного столбца эти процедуры используют тип и длину данных, необходимые для представления всех значений данных этого столбца.

Если все значения данных в столбце имеют один и тот же тип данных, этот тип используется для всего столбца. Если значения данных в столбце имеют различные типы данных, тип данных всего столбца определяется по следующей схеме.

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

Замечания

Кроме того, для получения значения свойства можно использовать процедуру sp_OAMethod.

Разрешения

Требует членства в предопределенной роли сервера sysadmin.

Примеры

A. Использование локальной переменной

В следующем примере значение свойства HostName (созданного ранее объекта SQLServer) считывается и сохраняется в локальной переменной.

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

Б. Использование результирующего набора

В следующем примере осуществляется получение свойства HostName (созданного ранее объекта SQLServer) и сохранение его на клиенте в виде результирующего набора.

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