public static void RFX_Text_Bulk (CFieldExchange * pFX, LPCTSTR szName, LPSTR * prgStrVals, lungo ** prgLengths, int nMaxLength );
Parametri
pFX
Puntatore a un oggetto CFieldExchange . Questo oggetto contiene informazioni per definire il contesto per ogni chiamata della funzione. Per ulteriori informazioni, vedere l'articolo Record campo Exchange: How RFX Works nel manuale del programmatore di Visual C++.
szName
Il nome di una colonna di dati.
prgStrVals
Puntatore a una matrice di valori LPSTR . Questa matrice memorizza i dati da trasferire al recordset dall'origine dati. Si noti che con la versione corrente di ODBC, questi valori non possono essere Unicode.
prgLengths
Puntatore a una matrice di valori integer a lungo. Questa matrice memorizzerà la lunghezza in byte di ogni valore della matrice a cui puntata prgStrVals. Questa lunghezza esclude il carattere di terminazione null. Si noti che il valore SQL_NULL_DATA verrà memorizzato se l'elemento corrispondente di dati contiene un valore Null. Per ulteriori dettagli, vedere la funzione API ODBC SQLBindCol in ODBC SDK Programmer di riferimento.
nMaxLength
Massimo consentito lunghezza dei valori memorizzati nella matrice a cui puntata prgStrVals, incluso il carattere di terminazione null. Per garantire che i dati non verranno troncati, passare un valore grande abbastanza da contenere l'elemento di dati più grande aspettano.
Osservazioni
La funzione RFX_Text_Bulk trasferisce più righe di dati di tipo carattere da una colonna di un'origine dati ODBC ad una matrice corrispondente in un CRecordset-oggetto derivato. La colonna di origine dati può avere un tipo ODBC di SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMALo SQL_NUMERIC. Il recordset deve definire un membro dati di campo di tipo LPSTR.
Se si inizializza prgStrVals e prgLengths su NULL, allora le matrici che puntare a verranno assegnate automaticamente, con dimensioni pari alla dimensione di set di righe.
&Notanbsp; Scambio di campi di record di massa solo trasferisce i dati dall'origine dati all'oggetto recordset. Al fine di rendere aggiornabile recordset, è necessario utilizzare la funzione API ODBC SQLSetPos. Per un esempio di come eseguire questa operazione, vedere l'esempio DBFETCH.
Per ulteriori informazioni, vedere gli articoli Recordset: recupero Records in Bulk (ODBC) e Record campo Exchange (RFX) nel manuale del programmatore di Visual C++.
Esempio
ClassWizard non supporta le funzioni RFX di massa, quindi è necessario scrivere manualmente chiamate nel tuo DoBulkFieldExchange l'override. Questo esempio mostra una chiamata a RFX_Text_Bulk, così come una chiamata a RFX_Long_Bulk, per il trasferimento dati. Queste chiamate sono precedute da una chiamata a CFieldExchange:: SetFieldType. Notare che per i parametri, è necessario chiamare le funzioni RFX anziché le funzioni RFX di massa.
public static void MultiRowSet::DoBulkFieldExchange (CFieldExchange pFX)
{
nbsp; pFX - > SetFieldType (CFieldExchange::outputColumn);
RFX_Long_Bulk (pFX, t ("[colRecID]"),
& m_rgID, & m_rgIDLenghts);
RFX_Text_Bulk (pFX, t ("[NomeColonna]"),
& m_rgName, & m_rgNameLengths, 30);
pFX - > SetFieldType (CFieldExchange::inputParam);
RFX_Text (pFX, "NameParam", m_strNameParam);
}
Vedere a&nchenbsp;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