エラー トラップ
更新 : 2007 年 11 月
データ バインディング時のエラー トラップの発生元として、エラー イベントとエラー オブジェクトの 2 つが挙げられます。
エラー イベントによるエラー トラップ
ADO データ コントロールおよび RDO RemoteData コントロールのデータ コントロールには、エラー イベントがあります。通常は、エラー イベント ハンドラを設定します。イベント ハンドラは、次のようなシグネチャ (引数の数、順番、および型) を持ちます。
void CMyDlg::OnErrorAdodc1(long ErrorNumber,
BSTR* FAR Description,
long Scode,
LPCTSTR Source,
LPCTSTR HelpFile,
long HelpContext,
BOOL FAR* fCancelDisplay)
通常は Description フィールドにデータが設定されます。ErrorNumber フィールドと Scode フィールドには、COM エラーが発生した場合だけ、データが設定されます。標準のイベント ハンドラは、Description フィールドをメッセージ ボックスに表示します。たとえば、次のようにします。
{
USES_CONVERSION;
// note: have to include the ATL file ATLConv.h to use the ATL conversion macros
::AfxMessageBox(OLE2T(*Description), MB_OK);
}
ただし、ADO データ コントロールおよび RDO RemoteData コントロールは既にエラー イベントをトラップするように設定されているため、コーディングは不要です。
エラー オブジェクトによるエラー トラップ
ADO と RDO には、エラー オブジェクトがあります。ラッパー クラスを作成すると、RDO RemoteData コントロールはエラー オブジェクト用のラッパー関数を作成します。一方、ADO データ コントロールは、このようなラッパー関数を作成しません。
ADO データ コントロールは、ADO エラー メッセージを自動的に表示します。