Dela via


sp_OAGetProperty (Transact-SQL)

gäller för:SQL Server

Hämtar ett egenskapsvärde för ett OLE-objekt.

Transact-SQL syntaxkonventioner

Syntax

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

Argument

Viktig

Argument för utökade lagrade procedurer måste anges i den specifika ordning som beskrivs i avsnittet Syntax. Om parametrarna anges i fel ordning visas ett felmeddelande.

objekttoken

Objekttoken för ett OLE-objekt som tidigare skapades med hjälp av sp_OACreate.

egenskapsnamn

Egenskapsnamnet för OLE-objektet som ska returneras.

propertyvalue OUTPUT

Det returnerade egenskapsvärdet. Om det anges måste det vara en lokal variabel av lämplig datatyp.

Om egenskapen returnerar ett OLE-objekt måste egenskapsvärde vara en lokal variabel av datatyp int. En objekttoken lagras i den lokala variabeln och den här objekttoken kan användas med andra OLE Automation-lagrade procedurer.

Om egenskapen returnerar ett enda värde:

  • ange en lokal variabel för propertyvalue, som returnerar egenskapsvärdet i den lokala variabeln. eller
  • ange inte egenskapsvärde, som returnerar egenskapsvärdet till klienten som en resultatuppsättning med en kolumn och en rad.

När egenskapen returnerar en matris, om egenskapsvärde anges, anges den till NULL.

Om egenskapsvärde anges, men egenskapen inte returnerar något värde, uppstår ett fel. Om egenskapen returnerar en matris med fler än två dimensioner uppstår ett fel.

index

En indexparameter. Om det anges måste index vara ett värde av lämplig datatyp.

Vissa egenskaper har parametrar. Dessa egenskaper kallas indexerade egenskaper och parametrarna kallas indexparametrar. En egenskap kan ha flera indexparametrar.

Not

Parametrarna för den här lagrade proceduren anges efter position, inte namn.

Returnera kodvärden

0 (lyckades) eller ett icke-nolltal (fel) som är heltalsvärdet för HRESULT som returneras av OLE Automation-objektet.

Mer information om HRESULT-returkoder finns i RETURkoder för OLE Automation och felinformation.

Resultatuppsättning

Om egenskapen returnerar en matris med en eller två dimensioner returneras matrisen till klienten som en resultatuppsättning:

  • En endimensionell matris returneras till klienten som en resultatuppsättning med en rad med så många kolumner som det finns element i matrisen. Matrisen returneras med andra ord som kolumner.

  • En tvådimensionell matris returneras till klienten som en resultatuppsättning med så många kolumner som det finns element i matrisens första dimension och med så många rader som det finns element i matrisens andra dimension. Matrisen returneras med andra ord som (kolumner, rader).

När ett egenskapsreturvärde eller metodreturvärde är en matris returnerar sp_OAGetProperty eller sp_OAMethod ett resultat inställt på klienten. (Metodutdataparametrar kan inte vara matriser.) Dessa procedurer genomsöker alla datavärden i matrisen för att fastställa lämpliga SQL Server-datatyper och datalängder som ska användas för varje kolumn i resultatuppsättningen. För en viss kolumn använder dessa procedurer den datatyp och den längd som krävs för att representera alla datavärden i den kolumnen.

När alla datavärden i en kolumn delar samma datatyp används den datatypen för hela kolumnen. När datavärdena i en kolumn har olika datatyper väljs datatypen för hela kolumnen baserat på följande diagram.

Int flyta pengar datetime varchar nvarchar
int int flyttal pengar varchar varchar nvarchar
flyttal flyttal flyttal pengar varchar varchar nvarchar
pengar pengar pengar pengar varchar varchar nvarchar
datetime varchar varchar varchar datetime varchar nvarchar
varchar varchar varchar varchar varchar varchar nvarchar
nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar

Anmärkningar

Du kan också använda sp_OAMethod för att hämta ett egenskapsvärde.

Behörigheter

Kräver medlemskap i sysadmin fast serverroll eller kör behörighet direkt på den här lagrade proceduren. Alternativet Ole Automation-procedurer serverkonfiguration måste vara aktiverat för att kunna använda alla systemprocedurer som är relaterade till OLE Automation.

Exempel

A. Använda en lokal variabel

I följande exempel hämtas egenskapen HostName (för det tidigare skapade SQLServer-objektet) och lagrar den i en lokal variabel.

DECLARE @property AS VARCHAR (255);

EXECUTE
    @hr = sp_OAGetProperty
    @object,
    'HostName',
    @property OUTPUT;

IF @hr <> 0
BEGIN
    EXECUTE sp_OAGetErrorInfo @object;
    RETURN;
END

PRINT @property;

B. Använda en resultatuppsättning

I följande exempel hämtas egenskapen HostName (för det tidigare skapade SQLServer objektet) och returnerar den till klienten som en resultatuppsättning.

EXECUTE
    @hr = sp_OAGetProperty
    @object,
    'HostName';

IF @hr <> 0
BEGIN
    EXECUTE sp_OAGetErrorInfo @object;
    RETURN;
END