sp_OAGetErrorInfo (Transact-SQL)sp_OAGetErrorInfo (Transact-SQL)

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

OLE オートメーションのエラー情報を取得します。Obtains OLE Automation error information.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

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

引数Arguments

objecttokenobjecttoken
使用して作成した OLE オブジェクトのオブジェクト トークンsp_OACreateまたは null を指定します。Is either the object token of an OLE object that was previously created by using sp_OACreate or it is NULL. 場合objecttokenが指定すると、そのオブジェクトのエラー情報が返されます。If objecttoken is specified, error information for that object is returned. NULL を指定した場合は、そのバッチ全体のエラー情報が返されます。If NULL is specified, the error information for the entire batch is returned.

ソース出力source OUTPUT
エラー情報のソースです。Is the source of the error information. 指定する場合、ローカルがする必要がありますcharncharvarchar、またはnvarchar変数。If specified, it must be a local char, nchar, varchar, or nvarchar variable. 戻り値は必要に応じてローカル変数のサイズに切り捨てられます。The return value is truncated to fit the local variable if necessary.

説明出力description OUTPUT
エラーの説明です。Is the description of the error. 指定する場合、ローカルがする必要がありますcharncharvarchar、またはnvarchar変数。If specified, it must be a local char, nchar, varchar, or nvarchar variable. 戻り値は必要に応じてローカル変数のサイズに切り捨てられます。The return value is truncated to fit the local variable if necessary.

helpfile 出力helpfile OUTPUT
OLE オブジェクトのヘルプ ファイルです。Is the help file for the OLE object. 指定する場合、ローカルがする必要がありますcharncharvarchar、またはnvarchar変数。If specified, it must be a local char, nchar, varchar, or nvarchar variable. 戻り値は必要に応じてローカル変数のサイズに切り捨てられます。The return value is truncated to fit the local variable if necessary.

helpid 出力helpid OUTPUT
ヘルプ ファイル コンテキスト ID です。Is the help file context ID. 指定する場合、ローカルがする必要がありますint変数。If specified, it must be a local int variable.

注意

このストアド プロシージャのパラメーターは、名前ではなく位置で指定されます。The parameters for this stored procedure are specified by position, not name.

リターン コードの値Return Code Values

成功した場合は 0、失敗した場合は OLE オートメーション オブジェクトによって返される HRESULT の 0 以外の整数値を返します。0 (success) or a nonzero number (failure) that is the integer value of the HRESULT returned by the OLE Automation object.

HRESULT のリターン コードの詳細については、次を参照してください。 OLE オートメーションのリターン コードとエラー情報します。For more information about HRESULT Return Codes, see OLE Automation Return Codes and Error Information.

結果セットResult Sets

出力パラメーターを指定しない場合、エラー情報は結果セットとしてクライアントに返されます。If no output parameters are specified, the error information is returned to the client as a result set.

列名Column names データ型Data type 説明Description
ErrorError binary(4)binary(4) エラー番号の 2 進表記。Binary representation of the error number.
SourceSource nvarchar(nn)nvarchar(nn) エラーのソース。Source of the error.
[説明]Description nvarchar(nn)nvarchar(nn) エラーの説明。Description of the error.
HelpfileHelpfile nvarchar(nn)nvarchar(nn) ソースのヘルプ ファイル。Help file for the source.
HelpIDHelpID intint ヘルプ ソース ファイルのヘルプ コンテキスト ID。Help context ID in the Help source file.

コメントRemarks

OLE オートメーションを呼び出すたびにストアド プロシージャ (を除くsp_OAGetErrorInfo) エラー情報をリセットします。 したがって、 sp_OAGetErrorInfo最新 OLE に関してのみ、エラー情報を取得します。オートメーション ストアド プロシージャの呼び出しです。Each call to an OLE Automation stored procedure (except sp_OAGetErrorInfo) resets the error information; therefore, sp_OAGetErrorInfo obtains error information only for the most recent OLE Automation stored procedure call. ためsp_OAGetErrorInfoエラー情報はリセットされません呼び出せる何度も同じエラー情報を取得します。Note that because sp_OAGetErrorInfo does not reset the error information, it can be called multiple times to get the same error information.

次の表は、OLE オートメーション エラーと一般的な原因の一覧です。The following table lists OLE Automation errors and their common causes.

エラーおよび HRESULTError and HRESULT 一般的な原因Common cause
無効な変数型 (0x80020008)Bad variable type (0x80020008) データ型、Transact-SQLTransact-SQLメソッド パラメーターと一致しませんでしたとして渡される値、 MicrosoftMicrosoft Visual BasicVisual Basicメソッド パラメーター、または NULL 値のデータ型は、メソッド パラメーターとして渡されました。Data type of a Transact-SQLTransact-SQL value passed as a method parameter did not match the MicrosoftMicrosoft Visual BasicVisual Basic data type of the method parameter, or a NULL value was passed as a method parameter.
不明な名前 (です 0x8002006)Unknown name (0x8002006) 指定したプロパティ名またはメソッド名が、指定したオブジェクトに見つかりませんでした。Specified property or method name was not found for the specified object.
無効なクラス文字列 (です 0x800401f3)Invalid class string (0x800401f3) 指定した ProgID または CLSID は、SQL ServerSQL Server インスタンスに OLE オブジェクトとして登録されていません。Specified ProgID or CLSID is not registered as an OLE object on an instance of SQL ServerSQL Server. 使用してインスタンスできます前に、カスタム OLE オートメーション サーバーを登録する必要がありますsp_OACreateします。Custom OLE automation servers must be registered before they can be instantiated using sp_OACreate. これを行うプロセス (.dll) サーバーでは、Regsvr32.exe ユーティリティを使用して、または /REGSERVERコマンド ライン スイッチをローカル (.exe) サーバー。This can be done by using the Regsvr32.exe utility for in-process (.dll) servers, or the /REGSERVER command-line switch for local (.exe) servers.
サーバーの実行に失敗しました (0x80080005)Server execution failed (0x80080005) 指定した OLE オブジェクトは、ローカル OLE サーバー (.exe ファイル) として登録されていますが、.exe ファイルが見つからないか、起動できません。Specified OLE object is registered as a local OLE server (.exe file) but the .exe file could not be found or started.
指定されたモジュールは見つかりませんでした (0x8007007e)The specified module could not be found (0x8007007e) 指定した OLE オブジェクトは、組み込み OLE サーバー (.dll ファイル) として登録されていますが、.dll ファイルが見つからないか、読み込むことができません。Specified OLE object is registered as an in-process OLE server (.dll file), but the .dll file could not be found or loaded.
型が一致しません (0x80020005)Type mismatch (0x80020005) プロパティ値またはメソッドの戻り値を格納するために使用する Transact-SQLTransact-SQL ローカル変数のデータ型が、プロパティ値またはメソッドの戻り値の Visual BasicVisual Basic データ型と一致しません。Data type of a Transact-SQLTransact-SQL local variable that is used to store a returned property value or a method return value did not match the Visual BasicVisual Basic data type of the property or method return value. または、プロパティやメソッドの戻り値を要求しましたが、そのプロパティやメソッドで戻り値が返されません。Or, the return value of a property or a method was requested, but it does not return a value.
sp_OACreate の 'context' パラメーターのデータ型または値が無効です。(0x8004275B)Datatype or value of the 'context' parameter of sp_OACreate is invalid. (0x8004275B) コンテキスト パラメーターの値には、いずれかを指定する必要があります。1、4、または 5 です。The value of the context parameter should be one of: 1, 4, or 5.

HRESULT のリターン コードの処理に関する詳細については、次を参照してください。 OLE オートメーションのリターン コードとエラー情報します。For more information about processing HRESULT Return Codes, see OLE Automation Return Codes and Error Information.

アクセス許可Permissions

メンバーシップが必要です、 sysadmin固定サーバー ロールまたはアクセス許可をこのストアド プロシージャを直接実行します。Requires membership in the sysadmin fixed server role or execute permission directly on this Stored Procedure. Ole Automation Procedures 構成でなければなりません有効になっているOLE オートメーションに関連するすべてのシステム プロシージャを使用します。Ole Automation Procedures configuration must be enabled to use any system procedure related to OLE Automation.

使用例Examples

次の例では、OLE オートメーションのエラー情報を表示します。The following example displays OLE Automation error information.

DECLARE @output varchar(255);  
DECLARE @hr int;  
DECLARE @source varchar(255);  
DECLARE @description varchar(255);  
PRINT 'OLE Automation Error Information';  
EXEC @hr = sp_OAGetErrorInfo @object, @source OUT, @description OUT;  
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;  

参照See Also

OLE オートメーション ストアド プロシージャ(TRANSACT-SQL) OLE Automation Stored Procedures (Transact-SQL)
OLE オートメーションのサンプル スクリプトOLE Automation Sample Script