次の方法で共有


RFX_Text

更新 : 2007 年 11 月

CRecordset オブジェクトのフィールド データ メンバと、ODBC 型 SQL_LONGVARCHARSQL_CHARSQL_VARCHARSQL_DECIMALSQL_NUMERIC のデータ ソース レコード列の間で CString データを転送します。

void RFX_Text(
   CFieldExchange* pFX,
   const char* szName,
   CString& value,
   int nMaxLength = 255,
   int nColumnType = SQL_VARCHAR,
   short nScale = 0 
);

パラメータ

  • pFX
    CFieldExchange クラスのオブジェクトへのポインタ。このオブジェクトは、関数の各呼び出しのコンテキストを定義する情報を保持します。CFieldExchange オブジェクトで指定できる操作の詳細については、「レコード フィールド エクスチェンジ : RFX の動作のしくみ」を参照してください。

  • szName
    データ列の名前。

  • value
    指定されたデータ メンバに格納される値。この値は転送されます。レコードセットからデータ ソースへの転送では、指定されたデータ メンバから CString 型の値を取得します。データ ソースからレコードセットへの転送では、指定されたデータ メンバに値が格納されます。

  • nMaxLength
    転送される文字列または配列の最大長。nMaxLength の既定値は 255 です。有効な値は 1 から INT_MAX までです。フレームワークはデータ用にこの領域を確保します。最高のパフォーマンスを引き出すには、転送するデータ アイテム中で最大のアイテムが入るのに十分な大きさを渡します。

  • nColumnType
    主にパラメータに使います。パラメータのデータ型を示す整数です。型は SQL_XXX 形式の ODBC データ型です。

  • nScale
    ODBC 型 SQL_DECIMAL または SQL_NUMERIC の値としてスケールを指定します。nScale は、パラメータの値を設定するときだけ有効です。詳細については、『ODBC SDK Programmer's Reference』の「Appendix D: Data Types」の「Column Size, Decimal Digits, Transfer Octet Length, and Display Size」を参照してください。

解説

この型のデータ ソース内のデータは、レコードセットの CString 型との間に割り当てられます。

使用例

例ではいくつかの RFX_Text を呼び出しています。また、2 つの CFieldExchange::SetFieldType を呼び出していることにも注目してください。パラメータには、SetFieldType 呼び出しとそれに関連する RFX 呼び出しをユーザーが記述する必要があります。通常、出力列の呼び出しとそれに関連する RFX 呼び出しは、コード ウィザードで生成されます。

void CCustomer::DoFieldExchange(CFieldExchange* pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   // Macros such as RFX_Text() and RFX_Int() are dependent on the
   // type of the member variable, not the type of the field in the database.
   // ODBC will try to automatically convert the column value to the requested type
   RFX_Long(pFX, _T("[CustomerID]"), m_CustomerID);
   RFX_Text(pFX, _T("[ContactFirstName]"), m_ContactFirstName);
   RFX_Text(pFX, _T("[PostalCode]"), m_PostalCode);
   RFX_Text(pFX, _T("[L_Name]"), m_L_Name);
   RFX_Long(pFX, _T("[BillingID]"), m_BillingID);

   pFX->SetFieldType(CFieldExchange::inputParam);
   RFX_Text(pFX, _T("Param"), m_strParam);
}

必要条件

ヘッダー : afxdb.h

参照

概念

MFC マクロとグローバル

参照

RFX_Bool

RFX_Long

RFX_Int

RFX_Single

RFX_Double

RFX_Date

RFX_Byte

RFX_Binary

RFX_LongBinary

CFieldExchange::SetFieldType