次の方法で共有


SQL-DMO エラーの処理 (SQL-DMO)

この機能は、Microsoft SQL Server の次のバージョンで削除されます。新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。

最上位レベルでは、SQL 分散管理オブジェクト (SQL-DMO) のオブジェクト メンバー関数が成功する場合と失敗する場合があります。各 COM 関数は、成功または失敗を示す HRESULT 値を返します。オペレーティング システムは、COM エラーおよび OLE エラーに対する関数の戻り値の範囲を予約し、詳細なエラー条件を定義します。

すべての SQL-DMO インターフェイスでは、IErrorInfo インターフェイスをサポートしています。SQL-DMO オブジェクトのインスタンスを使用すると、ISupportErrorInfo インターフェイスの QueryInterface は有効なインターフェイス ポインターを返し、ISupportErrorInfo::InterfaceSupportsErrorInfo は NOERROR を返します。したがって、COM の GetErrorInfo 関数は、SQL-DMO によって発生したエラーに対して IErrorInterface 参照を返す (HRESULT が CO_E_LAST よりも大きい) ため、SQL-DMO アプリケーションでは ISupportErrorInfo へのクエリを回避することができます。

SQL-DMO エラーの列挙データ型 SQLDMO_ERROR_TYPE は、関連するエラーのグループとして定義されます。Sqldmo.h で定義されている SQLDMO_ECAT_MASK マクロを使用すると、返されたエラーの種類に基づいてエラー処理を許可する、エラーのカテゴリを判別できます。たとえば、SQLDMO_ERROR_TYPE は SQLDMO_ECAT_UNPRIVILEGEDLOGIN を定義します。SQLDMO_ECAT_UNPRIVILEGEDLOGIN は、現在接続しているユーザーが、要求された操作を行うための十分な権限を持つロールのメンバーではないことを示すカテゴリです。アプリケーションは、このカテゴリのエラーが発生した場合に、特別なエラー処理コードへ分岐することができます。