Dela via


sp_OAGetErrorInfo (Transact-SQL)

gäller för:SQL Server

Hämtar OLE Automation-felinformation.

Transact-SQL syntaxkonventioner

Syntax

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

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

Antingen objekttoken för ett OLE-objekt som skapades tidigare med hjälp av sp_OACreateeller NULL. Om objecttoken anges returneras felinformation för objektet. Om NULL anges returneras felinformationen för hela batchen.

källa UTDATA

Källan till felinformationen. Om det anges måste det vara ett lokalt tecken, nchar, varchareller nvarchar variabel. Returvärdet trunkeras för att passa den lokala variabeln om det behövs.

beskrivning UTDATA

Beskrivningen av felet. Om det anges måste det vara ett lokalt tecken, nchar, varchareller nvarchar variabel. Returvärdet trunkeras för att passa den lokala variabeln om det behövs.

hjälpfil UTDATA

Hjälpfilen för OLE-objektet. Om det anges måste det vara ett lokalt tecken, nchar, varchareller nvarchar variabel. Returvärdet trunkeras för att passa den lokala variabeln om det behövs.

helpid OUTPUT

Kontext-ID för hjälpfilen. Om det anges måste det vara en lokal int variabel.

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 inga utdataparametrar anges returneras felinformationen till klienten som en resultatuppsättning.

Kolumnnamn Datatyp Beskrivning
Error binär(4) Binär representation av felnumret.
Source nvarchar(nn) Källan till felet.
Description nvarchar(nn) Beskrivning av felet.
Helpfile nvarchar(nn) Hjälpfil för källan.
HelpID int Hjälpkontext-ID i hjälpkällans fil.

Anmärkningar

Varje anrop till en lagrad OLE Automation-procedur (förutom sp_OAGetErrorInfo) återställer felinformationen. därför hämtar sp_OAGetErrorInfo endast felinformation för det senaste lagrade proceduranropet för OLE Automation. Eftersom sp_OAGetErrorInfo inte återställer felinformationen kan den anropas flera gånger för att få samma felinformation.

I följande tabell visas OLE Automation-fel och deras vanliga orsaker.

Fel och HRESULT Vanlig orsak
Felaktig variabeltyp (0x80020008) Datatypen för ett Transact-SQL värde som skickades som en metodparameter matchade inte microsoft Visual Basic-datatypen för metodparametern, eller så skickades ett NULL värde som en metodparameter.
Okänt namn (0x8002006) Det gick inte att hitta den angivna egenskapen eller metodnamnet för det angivna objektet.
Ogiltig klasssträng (0x800401f3) Angivet ProgID eller CLSID är inte registrerat som ett OLE-objekt på en instans av SQL Server. Anpassade OLE Automation-servrar måste registreras innan de kan instansieras med hjälp av sp_OACreate. Du kan registrera servrar med hjälp av verktyget Regsvr32.exe för processer (.dll) servrar eller /REGSERVER kommandoradsväxel för lokala servrar (.exe).
Server-körningen misslyckades (0x80080005) Det angivna OLE-objektet är registrerat som en lokal OLE-server (.exe fil) men .exe-filen kunde inte hittas eller startas.
Det gick inte att hitta den angivna modulen (0x8007007e) Det angivna OLE-objektet är registrerat som en processbaserad OLE-server (.dll fil), men det gick inte att hitta eller läsa in den .dll filen.
typmatchning (0x80020005) Datatypen för en Transact-SQL lokal variabel som används för att lagra ett returnerat egenskapsvärde eller ett metodreturvärde matchade inte Visual Basic-datatypen för egenskapen eller metodens returvärde. Eller så begärdes returvärdet för en egenskap eller en metod, men det returnerar inte något värde.
Datatypen eller värdet för parametern "context" för sp_OACreate är ogiltigt. (0x8004275B) Värdet för kontextparametern ska vara något av: 1, 4 eller 5.

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

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

I följande exempel visas felinformation om OLE Automation.

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