Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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