CFieldExchange::SetFieldType
オーバーライドしたレコードセット クラスの DoFieldExchange または DoBulkFieldExchange で、SetFieldType を呼び出す必要があります。
void SetFieldType(
UINT nFieldType
);
パラメーター
nFieldType
次に示す CFieldExchange で宣言されている enum FieldType の値のいずれかを指定します。CFieldExchange::outputColumn
CFieldExchange::inputParam
CFieldExchange::param
CFieldExchange::outputParam
CFieldExchange::inoutParam
解説
フィールド データ メンバーの場合、RFX または Bulk RFX 関数の前に、CFieldExchange::outputColumn のパラメーターで SetFieldType を呼び出す必要があります。 バルク行フェッチを実装していない場合、ClassWizard が DoFieldExchange のフィールド マップ セクションに SetFieldType 関数呼び出しを記述します。
レコードセット クラスをパラメーター化するときは、フィールド マップ セクションの外側で、すべてのパラメーター データ メンバーの RFX 呼び出しの前に、再度 SetFieldType を呼び出す必要があります。 パラメーター データ メンバーの型ごとに SetFieldType 関数呼び出しを追加する必要があります。 自分のクラスのパラメーター データ メンバーを指定するために SetFieldType 関数に渡せる値は、次の表のとおりです。
SetFieldType パラメーター値 |
パラメーター データ メンバーの型 |
---|---|
CFieldExchange::inputParam |
入力パラメーター。 値はレコードセットのクエリまたは組み込み手続きへ渡されます。 |
CFieldExchange::param |
CFieldExchange::inputParam と同じです。 |
CFieldExchange::outputParam |
出力パラメーター。 レコードセットの組み込み手続きの戻り値です。 |
CFieldExchange::inoutParam |
入出力パラメーター。 レコードセットの組み込み手続きへ渡された、またはそこから返された値です。 |
一般的には、フィールド データ メンバーやパラメーター データ メンバーに関連付けられた一連の RFX 関数呼び出しの前に、SetFieldType 関数を呼び出す必要があります。 それぞれの SetFieldType 呼び出しのパラメーター nFieldType は、その後に続く RFX 関数呼び出しで示されるデータ メンバーの型を識別します。
出力と入出力パラメーターの取り扱いの詳細については、CRecordset の「CRecordset::FlushResultSet」メンバー関数を参照してください。 RFX と Bulk RFX 関数の詳細については、「レコード フィールド エクスチェンジ (RFX) 関数」を参照してください。 バルク行フェッチの関連情報を参照してくださいレコード セット:一括 (ODBC) 内のレコードをフェッチ。
使用例
この例では、SetFieldType 関数の呼び出しを組み合わせたいくつかの RFX 関数の呼び出しを示します。 SetFieldType 関数は CFieldExchange オブジェクトへのポインター pFX を使って呼び出されます。
void CSections::DoFieldExchange(CFieldExchange* pFX)
{
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Text(pFX, _T("[CourseID]"), m_CourseID);
RFX_Text(pFX, _T("[InstructorID]"), m_InstructorID);
RFX_Text(pFX, _T("[RoomNo]"), m_RoomNo);
RFX_Text(pFX, _T("[Schedule]"), m_Schedule);
// output parameter
pFX->SetFieldType(CFieldExchange::outputParam);
RFX_Long(pFX, _T("Instructor_Count"), m_nCountParam);
// input parameter
pFX->SetFieldType(CFieldExchange::inputParam);
RFX_Text(pFX, _T("Department_Name"), m_strNameParam);
}
必要条件
**ヘッダー:**afxdb.h
参照
参照
CRecordset::DoBulkFieldExchange