Share via


sp_OAGetProperty (Transact-SQL)

Liest einen Eigenschaftswert eines OLE-Objekts.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • objecttoken
    Das Objekttoken eines zuvor mit sp_OACreate erstellten OLE-Objekts.

  • propertyname
    Der Eigenschaftsname des OLE-Objekts, dessen Wert zurückgegeben werden soll.

  • propertyvalueOUTPUT
    Der zurückgegebene Eigenschaftswert. Wenn angegeben, muss es sich um eine lokale Variable vom entsprechenden Datentyp handeln.

    Wenn die Eigenschaft ein OLE-Objekt zurückgibt, muss der propertyvalue-Parameter eine lokale Variable vom Datentyp int sein. Ein Objekttoken wird in der lokalen Variable gespeichert, und dieses Objekttoken kann in anderen gespeicherten Prozeduren der OLE-Automatisierung verwendet werden.

    Wenn die Eigenschaft einen einzigen Wert zurückgibt, geben Sie entweder eine lokale Variable für propertyvalue an, womit der Eigenschaftswert in der lokalen Variablen zurückgegeben wird, oder Sie geben propertyvalue nicht an, womit der Eigenschaftswert als einspaltiges, einzeiliges Resultset an den Client zurückgegeben wird.

    Gibt die Eigenschaft ein Array zurück, wird propertyvalue, sofern angegeben, auf NULL festgelegt.

    Wenn propertyvalue angegeben wird, die Methode jedoch keinen Wert zurückgibt, tritt ein Fehler auf. Gibt die Eigenschaft ein Array mit mehr als zwei Dimensionen zurück, tritt ebenfalls ein Fehler auf.

  • index
    Ein Indexparameter. Falls angegeben, muss index eine Variable vom entsprechenden Datentyp sein.

    Einige Eigenschaften besitzen Parameter. Diese Eigenschaften werden als Indiziert-Eigenschaften und die Parameter als Indexparameter bezeichnet. Eine Eigenschaft kann mehrere Indexparameter aufweisen.

    HinweisHinweis

    Die Parameter für diese gespeicherte Prozedur werden nicht nach dem Namen, sondern nach der Position angegeben.

Rückgabecodewerte

0 (Erfolg) oder eine Zahl ungleich Null (Fehler), die dem ganzzahligen Wert von HRESULT entspricht, der vom OLE-Automatisierungsobjekt zurückgegeben wird.

Weitere Informationen zu HRESULT-Rückgabecodes finden Sie unter Rückgabecodes und Fehlerinformationen der OLE-Automatisierung.

Resultsets

Wenn die Eigenschaft ein Array mit ein oder zwei Dimensionen zurückgibt, wird das Array dem Client folgendermaßen als Resultset zurückgegeben:

  • Ein eindimensionales Array wird dem Client als einzeiliges Resultset zurückgegeben, das so viele Spalten wie Elemente im Array enthält. Das Array wird also als Spalten zurückgegeben.

  • Ein zweidimensionales Array wird dem Client als Resultset zurückgegeben, dessen Anzahl an Spalten der Anzahl der Elemente in der ersten Dimension des Arrays entspricht und dessen Anzahl an Zeilen der Anzahl der Elemente in der zweiten Dimension des Arrays entspricht. Das Array wird also als (Spalten, Zeilen) zurückgegeben.

Wenn der Rückgabewert für eine Eigenschaft oder eine Methode einem Array entspricht, gibt die Methode sp_OAGetProperty oder sp_OAMethod dem Client ein Resultset zurück. (Ausgabeparameter für Methoden können nicht einem Array entsprechen.) Diese Prozeduren durchsuchen alle Datenwerte des Arrays, um die geeigneten SQL Server-Datentypen und -Datenlängen für jede Spalte des Resultsets zu ermitteln. Für eine bestimmte Spalte verwenden diese Prozeduren den Datentyp und die -länge, die erforderlich sind, um alle Datenwerte in dieser Spalte darzustellen.

Wenn alle Datenwerte einer Spalte denselben Datentyp aufweisen, wird dieser Datentyp für die gesamte Spalte verwendet. Wenn Datenwerte in einer Spalte unterschiedliche Datentypen verwenden, wird der Datentyp für die gesamte Spalte entsprechend der folgenden Tabelle ausgewählt.

 

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

Hinweise

Sie können einen Eigenschaftswert auch mit sp_OAMethod ermitteln.

Berechtigungen

Erfordert die Mitgliedschaft in der festen Serverrolle sysadmin.

Beispiele

A. Verwenden einer lokalen Variablen

Im folgenden Beispiel wird die HostName-Eigenschaft (des zuvor erstellten SQLServer-Objekts) ermittelt und in einer lokalen Variable gespeichert.

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. Verwenden eines Resultsets

Im folgenden Beispiel wird die HostName-Eigenschaft (des zuvor erstellten SQLServer-Objekts) ermittelt und dem Client als Resultset zurückgegeben.

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