sp_OAGetProperty (Transact-SQL)
Получает значение свойства объекта OLE.
Синтаксические обозначения 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