エラー トラッピング
データ バインディング時のエラー トラッピングの発生元として、エラー イベントとエラー オブジェクトの 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 エラー メッセージを自動的に表示します。