Delen via


sp_OAGetProperty (Transact-SQL)

van toepassing op:SQL Server-

Hiermee haalt u een eigenschapswaarde van een OLE-object op.

Transact-SQL syntaxisconventies

Syntaxis

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

Argumenten

Belangrijk

Argumenten voor uitgebreide opgeslagen procedures moeten worden ingevoerd in de specifieke volgorde, zoals beschreven in de sectie Syntaxis. Als de parameters niet in de volgorde zijn ingevoerd, treedt er een foutbericht op.

objecttoken

Het objecttoken van een OLE-object dat eerder is gemaakt met behulp van sp_OACreate.

eigenschapsnaam

De eigenschapsnaam van het OLE-object dat moet worden geretourneerd.

eigenschapswaarde UITVOER

De geretourneerde eigenschapswaarde. Indien opgegeven, moet het een lokale variabele van het juiste gegevenstype zijn.

Als de eigenschap een OLE-object retourneert, moet eigenschapswaarde een lokale variabele van het gegevenstype intzijn. Een objecttoken wordt opgeslagen in de lokale variabele en dit objecttoken kan worden gebruikt met andere opgeslagen OLE Automation-procedures.

Als de eigenschap één waarde retourneert, kunt u:

  • geef een lokale variabele op voor eigenschapswaarde, die de eigenschapswaarde in de lokale variabele retourneert; of
  • geef geen eigenschapswaarde op, waarmee de eigenschapswaarde naar de client wordt geretourneerd als een resultatenset met één kolom en één rij.

Wanneer de eigenschap een matrix retourneert en eigenschapswaarde is opgegeven, wordt deze ingesteld op NULL.

Als eigenschapswaarde is opgegeven, maar de eigenschap geen waarde retourneert, treedt er een fout op. Als de eigenschap een matrix met meer dan twee dimensies retourneert, treedt er een fout op.

index

Een indexparameter. Indien opgegeven, moet index een waarde van het juiste gegevenstype zijn.

Sommige eigenschappen hebben parameters. Deze eigenschappen worden geïndexeerde eigenschappen genoemd en de parameters worden indexparameters genoemd. Een eigenschap kan meerdere indexparameters hebben.

Notitie

De parameters voor deze opgeslagen procedure worden opgegeven op positie, niet op naam.

Codewaarden retourneren

0 (geslaagd) of een niet-nulnummer (fout) dat de gehele waarde is van het HRESULT dat wordt geretourneerd door het OLE Automation-object.

Zie OLE Automation-retourcodes en foutinformatievoor meer informatie over HRESULT-retourcodes.

Resultatenset

Als de eigenschap een matrix met een of twee dimensies retourneert, wordt de matrix als resultaatset naar de client geretourneerd:

  • Een eendimensionale matrix wordt aan de client geretourneerd als een resultatenset met één rij met zoveel kolommen als er elementen in de matrix zijn. Met andere woorden, de matrix wordt geretourneerd als kolommen.

  • Een tweedimensionale matrix wordt als resultaatset geretourneerd naar de client met zoveel kolommen als er elementen in de eerste dimensie van de matrix zijn en met zoveel rijen als er elementen in de tweede dimensie van de matrix zijn. Met andere woorden, de matrix wordt geretourneerd als (kolommen, rijen).

Wanneer een eigenschap retourwaarde of methode-retourwaarde een matrix is, retourneert sp_OAGetProperty of sp_OAMethod een resultatenset op de client. (Parameters voor methodeuitvoer kunnen geen matrices zijn.) Met deze procedures worden alle gegevenswaarden in de matrix gescand om de juiste SQL Server-gegevenstypen en gegevenslengten te bepalen die voor elke kolom in de resultatenset moeten worden gebruikt. Voor een bepaalde kolom gebruiken deze procedures het gegevenstype en de lengte die nodig is om alle gegevenswaarden in die kolom weer te geven.

Wanneer alle gegevenswaarden in een kolom hetzelfde gegevenstype delen, wordt dat gegevenstype gebruikt voor de hele kolom. Wanneer gegevenswaarden in een kolom van verschillende gegevenstypen zijn, wordt het gegevenstype van de hele kolom gekozen op basis van de volgende grafiek.

Int drijven geld datum/tijd varchar nvarchar
float- geld varchar- varchar- nvarchar-
float- float- float- geld varchar- varchar- nvarchar-
geld geld geld geld varchar- varchar- nvarchar-
datum/tijd- varchar- varchar- varchar- datum/tijd- varchar- nvarchar-
varchar- varchar- varchar- varchar- varchar- varchar- nvarchar-
nvarchar- nvarchar- nvarchar- nvarchar- nvarchar- nvarchar- nvarchar-

Opmerkingen

U kunt ook sp_OAMethod gebruiken om een eigenschapswaarde op te halen.

Machtigingen

Vereist lidmaatschap van de sysadmin vaste serverfunctie of voer de machtiging rechtstreeks uit voor deze opgeslagen procedure. De Ole Automation-procedures serverconfiguratieoptie moet zijn ingeschakeld voor het gebruik van een systeemprocedure met betrekking tot OLE Automation.

Voorbeelden

Een. Een lokale variabele gebruiken

In het volgende voorbeeld wordt de eigenschap HostName (van het eerder gemaakte SQLServer-object) opgehaald en opgeslagen in een lokale variabele.

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. Een resultatenset gebruiken

In het volgende voorbeeld wordt de eigenschap HostName (van het eerder gemaakte SQLServer-object) opgehaald en geretourneerd naar de client als resultaatset.

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

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