void RFX_Text_Bulk (CFieldExchange * pFX, LPCTSTR SzName, LPSTR * PrgStrVals, lange ** PrgLengths, Int nMaxLength );
Parameter
pFX
Ein Zeiger auf ein CFieldExchange -Objekt. Dieses Objekt enthält Informationen, die den Kontext für jeden Aufruf der Funktion definieren. Weitere Informationen finden Sie im Artikel -Datensatzfeldaustausch: Funktionsweise von RFX im Visual C++ Programmer's Guide.
szName
Den Namen einer Datenspalte.
prgStrVals
Ein Zeiger auf ein Array von LPSTR -Werte. Dieses Array speichert die Daten aus der Datenquelle an das Recordset übertragen werden. Beachten Sie, dass diese Werte mit der aktuellen Version von ODBC, Unicode nicht möglich.
prgLengths
Ein Zeiger auf ein Array von langer ganzer Zahlen. Dieses Array wird die Länge in Bytes der einzelnen Werte im Array auf verweist PrgStrValszu speichern. Diese Länge schließt das null-Terminierungszeichen. Beachten Sie, dass der Wert SQL_NULL_DATA gespeichert werden sollen, wenn das entsprechenden Datenelement einen Null-Wert enthält. Weitere Einzelheiten finden Sie in der ODBC API-Funktion SQLBindCol in der ODBC SDK Programmer's Reference.
nMaxLength
Die maximal zulässige Länge der Werte im Array auf verweist PrgStrVals, einschließlich das null-Terminierungszeichen gespeichert. Um sicherzustellen, dass Daten nicht abgeschnitten werden, übergeben Sie einen Wert groß genug für das größte Datenelement, die, das Sie erwarten.
Bemerkungen
Die RFX_Text_Bulk -Funktion überträgt mehrere Zeilen von Zeichendaten aus einer Spalte von einer ODBC-Datenquelle an eine entsprechende Array in ein CRecordset-Objekt abgeleitet. Die Quellspalte Daten kann einen ODBC-Datentyp SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMALoder SQL_NUMERIChaben. Das Recordset muss einen Feld-Datenmember des Typs LPSTR definieren.
Wenn Sie PrgStrVals und PrgLengths mit NULLzu initialisieren, werden dann die Arrays, die, denen Sie darauf, automatisch, mit Größen gleich die Größe des Rowsets zugeordnet.
Hinweis&Nbsp; Massenkopieren Record Field Exchange überträgt nur Daten aus der Datenquelle an das Recordset-Objekt. Um das Recordset aktualisierbar machen, müssen Sie die ODBC-API-Funktion SQLSetPosverwenden. Ein Beispiel für wie Sie dies tun, finden Sie im Beispiel DBFETCH.
Weitere Informationen finden Sie in die Artikeln Recordset: Abrufen von Datensätzen in einer Sammeloperation (ODBC) und Datensatzfeldaustausch (RFX) im Visual C++ Programmer's Guide.
Beispiel
Klassen-Assistent unterstützt nicht die Sammel-RFX-Funktionen, also Sie manuell schreiben müssen, Anrufe in Ihrer DoBulkFieldExchange überschreiben. Dieses Beispiel zeigt einen Aufruf von RFX_Text_Bulk, sowie einen Aufruf von RFX_Long_Bulk, für die Datenübertragung. Diese Anrufe werden durch einen Aufruf von CFieldExchange:: SetFieldTypevoraus. Beachten Sie, dass für Parameter, müssen Sie die RFX-Funktionen statt der RFX-Funktionen aufrufen.
privatevoid MultiRowSet::DoBulkFieldExchange (CFieldExchange pFX)
{
Nbsp; pFX - > SetFieldType (CFieldExchange::outputColumn);
RFX_Long_Bulk (pFX, _T ("[ColRecID]"),
& M_rgID, & M_rgIDLenghts);
RFX_Text_Bulk (pFX, _T ("[ColName]"),
& M_rgName, & M_rgNameLengths, 30);
pFX - > SetFieldType (CFieldExchange::inputParam);
RFX_Text (pFX, "NameParam", M_strNameParam);
}
Siehe auch&Nbsp;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