Поделиться через


sp_OAGetProperty (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

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

Синтаксис

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

Аргументы

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

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

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

    Если свойство возвращает объект 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.

Примеры

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

В следующем примере значение свойства 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;

См. также

Справочник

Хранимые процедуры OLE-автоматизации (Transact-SQL)

Пример скрипта OLE-автоматизации