void RFX_Text_Bulk (CFieldExchange * pFX, lpctstr szName, lpstr * prgStrVals, uzun ** prgLengths, int nMaxLength );
Parametreleri
pFX
Bir CFieldExchange nesnesi için bir işaretçi. Bu nesne, her arama fonksiyonu için bağlam tanımlamak için bilgi içerir. Daha fazla bilgi için bkz: yazı kayda alan değiş tokuşu: nasıl rfx çalışır Visual c++ Programcı Kılavuzu.
szName
Bir veri sütununun adını.
prgStrVals
lpstr değerler dizisi için bir işaretçi. Bu dizi, veri kaynağından recordset'e aktarılacak verileri depolar. Not odbc geçerli sürümüyle Unicode bu değerler olamaz.
prgLengths
Uzun tamsayı dizisi için bir işaretçi. Bu dizi uzunluğu bayt cinsinden prgStrValstarafından işaret dizideki her değer depolar. Bu uzunluk null sonlandırma karakteri bırakır. Not ilgili veri öğesi boş değer içeriyorsa değeri sql_null_data saklanacaktır. Daha fazla bilgi için bkz: odbc API işlevi SQLBindCol odbc sdk Programcı Başvurusu.
nMaxLength
İşaret null sonlandırma karakteri dahil prgStrValsgöre dizide saklanan değerlerin uzunluğu izin verilen en yüksek. Beklediğiniz en büyük veri öğesi karşılayacak kadar büyük bir değer veri değil kesilecek sağlamak için geçmek.
Açıklamalar
RFX_Text_Bulk işlevi bir CRecordsetkarşılık gelen bir dizi bir odbc veri kaynağına bir sütundan çok karakter veri satırları aktarır-nesne türetilmiş. Veri kaynağı sütunu bir odbc türü sql_longvarchar, sql_char, sql_varchar, SQL_DECIMALveya SQL_NUMERIColabilir. Kayıt türü lpstr alan veri üyesi tanımlamanız gerekir.
PrgStrVals ve prgLengths NULLbaşlatılamıyor, sonra onlar işaret dizileri otomatik olarak satır kümesi boyutuna eşit boyutlarıyla tahsis edilecektir.
&Notnbsp; Toplu kayıt alan değişimi, recordset nesnesine veri kaynağından verileri yalnızca aktarır. Güncelleştirilebilir recordset yapmak için SQLSetPosodbc API işlevini kullanmanız gerekir. Bunu nasıl örneği için bkz: örnek dbfetch.
Daha fazla bilgi için bkz: makaleleri Recordset: getiriliyor kayıtları toplu (odbc) ve Kaydı alan Exchange (rfx) Visual c++ Programcı Kılavuzu.
Örnek
Aramalar, DoBulkFieldExchange geçersiz el ile yazmalısınız bu yüzden ClassWizard toplu rfx işlevleri desteklemez. Bu örnek, RFX_Text_Bulkbir çağrı yanı sıra RFX_Long_Bulk, veri aktarımı için bir çağrı gösterir. Bu çağrıların CFieldExchange::SetFieldTypeçağrısı önünde. Parametreleri, toplu rfx işlevleri yerine rfx işlevleri çağırması gerekir unutmayın.
void MultiRowSet::DoBulkFieldExchange (CFieldExchange * pFX)
{
nbsp; pFX - > SetFieldType (CFieldExchange::outputColumn);
RFX_Long_Bulk (pFX, _t ("[colRecID]"),
& m_rgID, ve m_rgIDLenghts);
RFX_Text_Bulk (pFX, _t ("[colName]"),
& m_rgName, & m_rgNameLengths, 30);
pFX - > SetFieldType (CFieldExchange::inputParam);
RFX_Text (pFX, "NameParam", m_strNameParam);
}
Ayrıca bkz: 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