sp_OAGetProperty (Transact-SQL)
Gilt für: SQL Server
Ruft einen Eigenschaftswert eines OLE-Objekts ab.
Transact-SQL-Syntaxkonventionen
Syntax
sp_OAGetProperty objecttoken , propertyname
[ , propertyvalue OUTPUT ]
[ , index...]
Argumente
objecttoken
Das Objekttoken eines zuvor mit sp_OACreateerstellten OLE-Objekts.
propertyname
Der Eigenschaftsname des OLE-Objekts, dessen Wert zurückgegeben werden soll.
propertyvalue OUTPUT
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 Eigenschaftswert eine lokale Variable des Datentyps "int" sein. Ein Objekttoken wird in der lokalen Variablen gespeichert, und dieses Objekttoken kann mit anderen gespeicherten OLE-Automatisierungsprozeduren verwendet werden.
Wenn die Eigenschaft einen einzelnen Wert zurückgibt, geben Sie entweder eine lokale Variable für den Eigenschaftswert an, die den Eigenschaftswert in der lokalen Variablen zurückgibt, oder geben Sie keinen Eigenschaftswert an, der den Eigenschaftswert als einspaltiges Ergebnisset an den Client zurückgibt.
Wenn die Eigenschaft ein Array zurückgibt, wenn der Eigenschaftswert angegeben wird, wird sie auf NULL festgelegt.
Wenn der Eigenschaftswert angegeben ist, aber die Eigenschaft 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. Wenn angegeben, muss index ein Wert des entsprechenden Datentyps sein.
Einige Eigenschaften besitzen Parameter. Diese Eigenschaften werden als Indiziert-Eigenschaften und die Parameter als Indexparameter bezeichnet. Eine Eigenschaft kann mehrere Indexparameter aufweisen.
Hinweis
Die Parameter für diese gespeicherte Prozedur werden durch Position und nicht durch den Namen 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 OLE Automation Return Codes and Error Information.
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 ein Rückgabewert oder ein Methodenrückgabewert ein Array ist, gibt sp_OAGetProperty oder sp_OAMethod einen Resultset an den Client zurück. (Methodenausgabeparameter dürfen keine Arrays sein.) Diese Verfahren scannen alle Datenwerte im Array, um die entsprechenden SQL Server-Datentypen und Datenlängen zu bestimmen, die für jede Spalte im Resultset verwendet werden sollen. 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 auch sp_OAMethod verwenden, um einen Eigenschaftswert abzurufen.
Berechtigungen
Erfordert die Mitgliedschaft in der festen Serverrolle "sysadmin " oder führt die Berechtigung direkt für diese gespeicherte Prozedur aus. Ole Automation Procedures
Die Konfiguration muss aktiviert sein, um alle Systemprozeduren im Zusammenhang mit der OLE-Automatisierung zu verwenden.
Beispiele
A. Verwenden einer lokalen Variablen
Im folgenden Beispiel wird die HostName
Eigenschaft (des zuvor erstellten SQLServer-Objekts) und in einer lokalen Variablen 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) und als Resultset an den Client zurückgegeben.
EXEC @hr = sp_OAGetProperty @object, 'HostName';
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END;
Weitere Informationen
Gespeicherte OLE-Automatisierungsprozeduren (Transact-SQL)
OLE-Automatisierungsbeispielskript