Condividi tramite


RFX_Text_Bulk

Trasferisce le righe di dati di tipo carattere da una colonna di un'origine dati ODBC a una matrice corrispondente in CRecordset- oggetto derivato.

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

Parametri

  • pFX
    Un puntatore a un oggetto CFieldExchange. Questo oggetto contiene le informazioni per definire il contesto per ogni chiamata della funzione. Per ulteriori informazioni, vedere l'articolo Trasferimento di campi di Record: Funzionamento di RFX.

  • szName
    Il nome di una colonna di dati.

  • prgStrVals
    Un puntatore a una matrice di valori di LPSTR. Questa matrice verranno archiviati i dati da trasferire dall'origine dati al recordset. Si noti che con la versione corrente di ODBC, che non può essere Unicode.

  • prgLengths
    Un puntatore a una matrice di integer long. Questa matrice archivierà la lunghezza in byte di ogni valore nella matrice indicata da prgStrVals. Tale lunghezza escluso il carattere di terminazione null. Si noti che il valore SQL_NULL_DATA verrà archiviato se l'elemento dati corrispondente contiene un valore null. Per ulteriori informazioni, vedere la funzione API ODBC SQLBindColin ODBC SDK programmer's reference.

  • nMaxLength
    La lunghezza massima consentita dei valori memorizzati nella matrice indicato da prgStrVals, incluso il carattere di terminazione null. Per assicurarsi che i dati non verranno troncati, passare un valore abbastanza grande da contenere il più grande elemento di dati come previsto.

Note

La colonna di origine dati può avere un tipo di ODBC SQL_LONGVARCHAR, di SQL_CHAR, di SQL_VARCHAR, di SQL_DECIMAL, o di SQL_NUMERIC. Il recordset deve definire un membro dati di campo di tipo LPSTR.

Se si inizializza prgStrVals e prgLengths a NULL, le matrici che indicano vengono allocate automaticamente, le cui dimensioni uguale alla dimensione del rowset.

Nota

Il trasferimento di massa di campi di Record trasferita solo i dati da un'origine dati all'oggetto recordset.Per rendere il recordset aggiornabile, è necessario utilizzare la funzione API ODBC SQLSetPos.

Per ulteriori informazioni, vedere gli articoli Recordset: Recupero di massa di record (ODBC) e Trasferimento di campi di Record.

Esempio

È necessario scrivere le chiamate nell'override di DoBulkFieldExchange. In questo esempio viene illustrata una chiamata a RFX_Text_Bulknonché una chiamata a RFX_Long_Bulk, per il trasferimento dei dati. Queste chiamate sono precedute da una chiamata a CFieldExchange::SetFieldType. Si noti che per i parametri, è necessario chiamare le funzioni RFX anziché le funzioni RFX di massa.

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

Requisiti

Intestazione: afxdb.h

Vedere anche

Riferimenti

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

Concetti

Macro e funzioni globali MFC