Partager via


RFX_Text_Bulk

Transférer plusieurs lignes de données caractères d'une colonne d'une source de données ODBC à un tableau correspondante dans CRecordsetobjet dérivé.

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

Paramètres

  • pFX
    Un pointeur vers un objet CFieldExchange.Cet objet contient des informations pour définir le contexte pour chaque appel de la fonction.Pour plus d'informations, consultez l'article Record field exchange : Comment le fonctions RFX.

  • szName
    Le nom d'une colonne de données.

  • prgStrVals
    Un pointeur vers un tableau de valeurs de LPSTR .Ce tableau stockera des données à transférer de la source de données vers le recordset.Notez qu'avec la version actuelle ODBC, ces valeurs ne peut pas être Unicode.

  • prgLengths
    Pointeur vers un tableau de longs entiers.Ce tableau stockera la longueur en octets de chaque valeur du tableau désignée par prgStrVals.Cette longueur exclut le caractère null de fin.Notez que la valeur SQL_NULL_DATA sera signalée si l'élément de données correspondant contient une valeur NULL.Pour plus d'informations, consultez la fonction API ODBC SQLBindCol du guide ODBC sdkprogrammer' s Reference.

  • nMaxLength
    Le maximum de laisser à la longueur des valeurs stockées dans le tableau désignée par prgStrVals, y compris le caractère null de fin.Pour s'assurer que les données ne seront pas tronquées, passez une valeur assez grand pour recevoir le plus grand élément de données attendues.

Notes

La colonne de source de données peut avoir un type ODBC de SQL_LONGVARCHAR, de SQL_CHAR, de SQL_VARCHAR, de SQL_DECIMAL, ou de SQL_NUMERIC.Le recordset doit définir des données membres de champ de type LPSTR.

Si vous initialisez prgStrVals et prgLengths à NULL, les tableaux qu'elles indiquent sont alloués automatiquement, avec des tailles égale à la taille du jeu de lignes.

[!REMARQUE]

Le mécanisme RFX en bloc transfère uniquement des données de la source de données et l'objet recordset.Pour rendre votre recordset modifiable, vous devez utiliser la fonction API ODBC SQLSetPos.

Pour plus d'informations, consultez les articles recordset : Extraction globale d'enregistrements (ODBC) et Record field exchange (RFX).

Exemple

Vous devez entrer manuellement des appels dans la substitution d' DoBulkFieldExchange .Cet exemple illustre un appel à RFX_Text_Bulk, ainsi qu'un appel à RFX_Long_Bulk, pour le transfert de données.Ces appels sont précédés par un appel à CFieldExchange::SetFieldType.Notez que pour les paramètres, vous devez appeler les fonctions RFX à la place des fonctions RFX en bloc.

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);
}

Configuration requise

Header: afxdb.h

Voir aussi

Référence

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

Concepts

Macro MFC et Globals