CFieldExchange::SetFieldType
更新 : 2007 年 11 月
オーバーライドしたレコードセット クラスの 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