RFX_Text_Bulk
Transfere várias linhas de dados de caracteres de uma coluna de uma fonte de dados ODBC em uma matriz correspondente em CRecordset- objeto derivada.
void RFX_Text_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
LPSTR* prgStrVals,
long** prgLengths,
int nMaxLength
);
Parâmetros
pFX
Um ponteiro para um objeto de CFieldExchange . Esse objeto contém informações para definir o contexto para cada chamada da função. Para obter mais informações, consulte o artigo Exchange campo do registro: Como funciona RFX.szName
O nome de uma coluna de dados.prgStrVals
Um ponteiro para uma matriz de valores de LPSTR . Esta matriz armazenará os dados a serem transferidos da fonte de dados ao conjunto de registros. Observe que com a versão atual de ODBC, esses valores não pode ser Unicode.prgLengths
Um ponteiro para uma matriz de inteiros longos. Esta matriz armazenará o comprimento em bytes de cada valor na matriz apontada por prgStrVals. Esse comprimento exclui o caractere nulo de término. Observe que o valor SQL_NULL_DATA armazenado será se o item de dados correspondente contém um valor nulo. Para obter mais detalhes, consulte a função SQLBindCol de ODBC API em ODBC programmer's reference SDK.nMaxLength
O máximo permitido para o comprimento dos valores armazenados na matriz apontada por prgStrVals, incluindo o caractere nulo de término. Para assegurar que os dados não sejam truncados, passe um valor grande o suficiente para acomodar o item de dados maior que o esperado.
Comentários
A coluna de fonte de dados pode ter um tipo ODBC de SQL_LONGVARCHAR, de SQL_CHAR, de SQL_VARCHAR, de SQL_DECIMAL, ou de SQL_NUMERIC. O conjunto de registros deve definir um membro de dados do campo de tipo LPSTR.
Se você iniciar prgStrVals e prgLengths a nulo, as matrizes que apontam para serão atribuídas automaticamente, com tamanhos iguais ao conjunto de linhas.
Dica
Os dados em massa das transferências de troca do campo de registro somente da fonte de dados ao conjunto de registros objeto.Para fazer seu conjunto de registros atualizável, você deve usar a função SQLSetPosde ODBC API.
Para obter mais informações, consulte os artigos Conjunto de registros: Buscando registros em massa (ODBC) e Exchange campo de registro (RFX).
Exemplo
Você deve escrever manualmente chamadas na substituição de DoBulkFieldExchange . Este exemplo mostra uma chamada a RFX_Text_Bulk, bem como uma chamada a RFX_Long_Bulk, para a transferência de dados. Estas chamadas são precedidos por uma chamada a CFieldExchange::SetFieldType. Observe que para parâmetros, você deve chamar as funções de RFX em vez das funções do volume RFX.
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);
}
Requisitos
Header: afxdb.h