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


Синтаксис иерархии объектов (Transact-SQL)

Область применения: SQL Server

Параметр propertyname и sp_OASetProperty параметр sp_OAGetProperty sp_OAMethod имени метода поддерживают синтаксис иерархии объектов, аналогичный синтаксису Microsoft Visual Basic. При использовании этого синтаксиса приведенные выше аргументы имеют следующий общий вид:

Синтаксис

TraversedObject.PropertyOrMethod

Аргументы

TraversedObject

Объект OLE в иерархии под объектом objecttoken , указанный в хранимой процедуре. Используйте синтаксис Visual Basic для указания ряда коллекций, свойств объектов и методов, возвращающих объекты. Каждый описатель объекта в серии должен быть разделен точкой (.).

Элемент в серии может быть именем коллекции. Коллекции указываются с помощью следующего синтаксиса:

Collection("item")

Требуются двойные кавычки ("). Синтаксис восклицательного знака! Visual Basic для коллекций не поддерживается.

PropertyOrMethod

Имя свойства или метода TraversedObject.

Чтобы указать все параметры индекса или метода внутри круглых скобок (вызывая все параметры sp_OAGetPropertyиндекса или метода , sp_OASetPropertyили sp_OAMethod игнорировать их), используйте следующий синтаксис:

PropertyOrMethod ( [ ParameterName := ] "parameter" [ , ... ] )

Требуются двойные кавычки ("). Все именованные параметры должны указываться после указания всех позиционных параметров.

Замечания

Если параметр TraversedObject не указан, требуется СвойствоOrMethod .

Если СвойствоOrMethod не указано, объект TraversedObject возвращается в качестве выходного параметра маркера объекта из хранимой процедуры OLE Automation.

Если задано свойство PropertyOrMethod , вызывается свойство или метод TraversedObject . Значение свойства или возвращаемое значение метода возвращается в качестве выходного параметра из хранимой процедуры OLE Automation.

Если любой элемент в списке TraversedObject не возвращает объект OLE, возникает ошибка.

Дополнительные сведения о синтаксисе объекта OLE Visual Basic см. в документации по Visual Basic.

Дополнительные сведения о кодах возврата см. в HRESULT sp_OACreate.

Примеры

Ниже приведены примеры синтаксиса иерархии объектов, использующее объект SQL-DMO SQLServer.

-- Get the AdventureWorks2022 Person.Address Table object.
EXEC @hr = sp_OAGetProperty @object,
   'Databases("AdventureWorks2022").Tables("Person.Address")',
   @table OUT

-- Get the Rows property of the AdventureWorks2022 Person.Address table.
EXEC @hr = sp_OAGetProperty @object,
   'Databases("AdventureWorks2022").Tables("Person.Address").Rows',
   @rows OUT

-- Call the CheckTable method to validate the
-- AdventureWorks2022 Person.Address table.
EXEC @hr = sp_OAMethod @object,
   'Databases("AdventureWorks2022").Tables("Person.Address").CheckTable',
   @checkoutput OUT