次の方法で共有


RFX_Text_Bulk

複数行の文字データを ODBC データ ソースの列から CRecordset 派生オブジェクト内の対応する配列に転送します。

void RFX_Text_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   LPSTR* prgStrVals,
   long** prgLengths,
   int nMaxLength 
);

パラメーター

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

  • szName
    データ列の名前。

  • prgStrVals
    LPSTR の値の配列へのポインター。 この配列には、データ ソースからレコードセットへコピーされるデータが格納されます。 現在のバージョンの ODBC では、これらの値は Unicode ではありません。

  • prgLengths
    長整数型 (long) の配列へのポインター。 この配列には、prgStrVals で指定された配列内のそれぞれの値の長さが、バイト単位で保存されます。 この長さには、終端の NULL 文字は含まれません。 対応するデータ アイテムの値が Null の場合、SQL_NULL_DATA の値が格納されます。 詳細については、『ODBC SDK Programmer's Reference』の「ODBC API Functions」の「SQLBindCol」を参照してください。

  • nMaxLength
    prgStrVals によって指定された配列に保存されている値の、最大長です。終端の NULL 文字を含みます。 データが切り捨てられないように、最大のデータ アイテムを格納するのに十分大きな値を指定してください。

解説

データ ソース列は、SQL_LONGVARCHARSQL_CHARSQL_VARCHARSQL_DECIMAL、または SQL_NUMERIC のいずれかの ODBC 型です。 レコードセットでは、LPSTR へのポインター型のフィールド データ メンバーを定義する必要があります。

prgStrVals と prgLengths を NULL で初期化した場合は、行セットのサイズと等しいサイズの配列が、自動的に割り当てられます。

注意

バルク レコード フィールド エクスチェンジでは、データ ソースからレコードセット オブジェクトにデータが転送されるだけです。 レコードセットを更新可能にするには、ODBC API の関数 SQLSetPos を使用します。

詳細についてを参照してくださいレコード セット:一括 (ODBC) 内のレコードをフェッチのレコード フィールド エクス (チェンジ RFX)

使用例

DoBulkFieldExchange のオーバーライドでは、呼び出しは手動で記述する必要があります。 この例は、RFX_Text_Bulk の呼び出しと、データ転送のための RFX_Long_Bulk の呼び出しを示しています。 これらの呼び出しの前に、CFieldExchange::SetFieldType を呼び出します。 このパラメーターには、Bulk RFX 関数ではなく RFX 関数を使用している点に注意してください。

void CMultiCustomer::DoBulkFieldExchange(CFieldExchange* pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   RFX_Long_Bulk(pFX, _T("[CustomerID]"), &m_pCustomerID, &m_pcCustomerID);
   RFX_Text_Bulk(pFX, _T("[ContactFirstName]"), &m_pContactFirstName, &m_pcContactFirstName, 50);
   RFX_Text_Bulk(pFX, _T("[PostalCode]"), &m_pPostalCode, &m_pcPostalCode, 50);
   RFX_Text_Bulk(pFX, _T("[L_Name]"), &m_pL_Name, &m_pcL_Name, 50);
   RFX_Long_Bulk(pFX, _T("[BillingID]"), &m_pBillingID, &m_pcBillingID);

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

必要条件

**ヘッダー:**afxdb.h

参照

参照

RFX_Binary_Bulk

RFX_Bool_Bulk

RFX_Byte_Bulk

RFX_Date_Bulk

RFX_Double_Bulk

RFX_Int_Bulk

RFX_Long_Bulk

RFX_Single_Bulk

CFieldExchange::SetFieldType

概念

MFC マクロとグローバル