RFX_Text_Bulk
Przenosi wielu wierszy danych znakowych z kolumny źródła danych ODBC do odpowiedniej tablicy w CRecordset-uzyskane obiektu.
void RFX_Text_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
LPSTR* prgStrVals,
long** prgLengths,
int nMaxLength
);
Parametry
pFX
Wskaźnik do CFieldExchange obiektu.Ten obiekt zawiera informacje definiujące kontekst dla każdego wywołania funkcji.Aby uzyskać więcej informacji, zobacz artykuł wymiany pola rekordu: jak działa RFX.szName
Nazwa kolumny danych.prgStrVals
Wskaźnik do tablicy LPSTR wartości.Ta tablica będzie przechowywać danych przekazywanych ze źródła danych do zestawu rekordów.Należy zauważyć, że w bieżącej wersji ODBC, wartości te nie mogą być Unicode.prgLengths
Wskaźnik do tablicy liczby całkowite długie.Ta tablica będzie przechowywał długości w bajtach każdej wartości w tablicy wskazywanej przez prgStrVals.Ta długość wyklucza znak null zakończenie.Należy zauważyć, że wartość SQL_NULL_DATA będą przechowywane, jeżeli odpowiadający mu element danych zawiera wartość Null.Więcej informacji, zobacz opis funkcji interfejsu API ODBC Procedura SQLBindCol w SDK Podręcznik programisty ODBC.nMaxLength
Maksymalna dozwolona długość wartości przechowywanych w tablicy wskazywanej przez prgStrVals, włączając znak null zakończenie.W celu zapewnienia, że dane nie zostaną obcięte, należy przekazać wartość wystarczającą do największego elementu danych, oczekiwanych.
Uwagi
Kolumny źródła danych mogą mieć typu danych ODBC z SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL, lub SQL_NUMERIC.Zestaw rekordów, należy zdefiniować członka danych pole typu LPSTR.
Jeśli należy zainicjować prgStrVals i prgLengths do NULL, a następnie tablice, aby zostaną przydzielone automatycznie, o rozmiarach równa rozmiar zestawu wierszy.
[!UWAGA]
Luzem w polu rekordu exchange tylko przesyła dane ze źródła danych do obiektu recordset.Aby swój zestaw rekordów można aktualizować, należy użyć funkcji interfejsu API ODBC SQLSetPos.
Aby uzyskać więcej informacji, zobacz artykuły zestaw rekordów: pobieranie rekordów luzem (ODBC) i Exchange pole rekordu (RFX).
Przykład
Należy ręcznie napisać połączeń w sieci DoBulkFieldExchange zastąpić.W tym przykładzie przedstawiono wywołanie RFX_Text_Bulk, jak również wywołanie RFX_Long_Bulk, do transferu danych.Te wywołania są poprzedzone przez wywołanie CFieldExchange::SetFieldType.Należy zauważyć, że dla parametrów, musisz wywołać funkcji RFX w funkcji RFX luzem.
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);
}
Wymagania
Nagłówek: afxdb.h