Delen via


sp_OAGetErrorInfo (Transact-SQL)

van toepassing op:SQL Server-

Hiermee worden OLE Automation-foutgegevens opgehaald.

Transact-SQL syntaxisconventies

Syntaxis

sp_OAGetErrorInfo [ objecttoken ]
    [ , source OUTPUT ]
    [ , description OUTPUT ]
    [ , helpfile OUTPUT ]
    [ , helpid OUTPUT ]
[ ; ]

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_OACreateof NULL. Als objecttoken is opgegeven, wordt foutinformatie voor dat object geretourneerd. Als NULL is opgegeven, wordt de foutinformatie voor de hele batch geretourneerd.

bron- UITVOER

De bron van de foutinformatie. Indien opgegeven, moet het een lokaal teken, nchar, varcharof nvarchar variabele zijn. De retourwaarde wordt afgekapt zodat deze zo nodig past bij de lokale variabele.

beschrijving UITVOER

De beschrijving van de fout. Indien opgegeven, moet het een lokaal teken, nchar, varcharof nvarchar variabele zijn. De retourwaarde wordt afgekapt zodat deze zo nodig past bij de lokale variabele.

helpbestand UITVOER

Het Help-bestand voor het OLE-object. Indien opgegeven, moet het een lokaal teken, nchar, varcharof nvarchar variabele zijn. De retourwaarde wordt afgekapt zodat deze zo nodig past bij de lokale variabele.

helpid UITVOER

De context-id van het Help-bestand. Indien opgegeven, moet het een lokale int variabele zijn.

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 er geen uitvoerparameters zijn opgegeven, wordt de foutinformatie als resultaatset geretourneerd naar de client.

Kolomnaam Gegevenstype Beschrijving
Error binary(4) Binaire weergave van het foutnummer.
Source nvarchar(nn) Bron van de fout.
Description nvarchar(nn) Beschrijving van de fout.
Helpfile nvarchar(nn) Help-bestand voor de bron.
HelpID Help-context-id in het Help-bronbestand.

Opmerkingen

Elke aanroep naar een opgeslagen OLE Automation-procedure (behalve sp_OAGetErrorInfo) stelt de foutgegevens opnieuw in; daarom krijgt sp_OAGetErrorInfo alleen foutinformatie voor de meest recente aanroep van opgeslagen OLE Automation-procedures. Omdat sp_OAGetErrorInfo de foutgegevens niet opnieuw instelt, kan deze meerdere keren worden aangeroepen om dezelfde foutgegevens op te halen.

De volgende tabel bevat OLE Automation-fouten en de veelvoorkomende oorzaken.

Fout en HRESULT Veelvoorkomende oorzaak
ongeldig variabeletype (0x80020008) Het gegevenstype van een Transact-SQL waarde die als methodeparameter is doorgegeven, komt niet overeen met het gegevenstype Microsoft Visual Basic van de methodeparameter of een NULL waarde is doorgegeven als een methodeparameter.
onbekende naam (0x8002006) De opgegeven eigenschap of methodenaam is niet gevonden voor het opgegeven object.
ongeldige klassereeks (0x800401f3) De opgegeven ProgID of CLSID is niet geregistreerd als een OLE-object op een exemplaar van SQL Server. Aangepaste OLE-automatiseringsservers moeten worden geregistreerd voordat ze kunnen worden geïnstantieerd met behulp van sp_OACreate. U kunt servers registreren met behulp van het hulpprogramma Regsvr32.exe voor in-processervers (.dll) of de /REGSERVER opdrachtregelswitch voor lokale (.exe) servers.
serveruitvoering is mislukt (0x80080005) Het opgegeven OLE-object is geregistreerd als een lokale OLE-server (.exe bestand), maar het .exe bestand kan niet worden gevonden of gestart.
Kan de opgegeven module niet vinden (0x8007007e) Het opgegeven OLE-object is geregistreerd als een OLE-server (.dll bestand), maar het .dll bestand kan niet worden gevonden of geladen.
type komt niet overeen (0x80020005) Het gegevenstype van een Transact-SQL lokale variabele die wordt gebruikt om een geretourneerde eigenschapswaarde op te slaan of een retourwaarde van een methode komt niet overeen met het gegevenstype Visual Basic van de eigenschap of retourwaarde van de methode. Of de retourwaarde van een eigenschap of methode is aangevraagd, maar retourneert geen waarde.
Het gegevenstype of de waarde van de parameter 'context' van sp_OACreate is ongeldig. (0x8004275B) De waarde van de contextparameter moet een van: 1, 4 of 5 zijn.

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

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

In het volgende voorbeeld wordt OLE Automation-foutinformatie weergegeven.

DECLARE @output AS VARCHAR (255);
DECLARE @hr AS INT;
DECLARE @source AS VARCHAR (255);
DECLARE @description AS VARCHAR (255);

PRINT 'OLE Automation Error Information';

EXECUTE
    @hr = sp_OAGetErrorInfo
    @object,
    @source OUTPUT,
    @description OUTPUT;

IF @hr = 0
BEGIN
    SELECT @output = '  Source: ' + @source;
    PRINT @output;
    SELECT @output = '  Description: ' + @description;
    PRINT @output;
END
ELSE
BEGIN
    PRINT '  sp_OAGetErrorInfo failed.';
    RETURN;
END