RFX_Text_Bulk
Transfere várias linhas de dados de caractere de uma coluna de uma fonte de dados ODBC para uma matriz correspondente em um CRecordset-derivado objeto.
void RFX_Text_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
LPSTR* prgStrVals,
long** prgLengths,
int nMaxLength
);
Parâmetros
pFX
Um ponteiro para um CFieldExchange objeto.Este objeto contém informações para definir o contexto de cada chamada da função.Para obter mais informações, consulte o artigo registro de campo Exchange: como funciona RFX.szName
O nome de uma coluna de dados.prgStrVals
Um ponteiro para uma matriz de LPSTR valores.Essa matriz armazenará os dados a ser transferido da fonte de dados ao conjunto de registros.Observe que, com a versão atual do ODBC, esses valores não podem ser Unicode.prgLengths
Um ponteiro para uma matriz de inteiros longos.Essa matriz armazenará o comprimento em bytes de cada valor na matriz apontada pelo prgStrVals.Esse comprimento exclui o caractere de finalização null.Observe que o valor SQL_NULL_DATA será armazenado se o item de dados correspondente contiver um valor nulo.Para obter mais detalhes, consulte a função de API ODBC SQLBindCol na referência do programador de ODBC SDK.nMaxLength
O número máximo permitido de comprimento dos valores armazenados na matriz apontada pelo prgStrVals, incluindo o caractere de finalização null.Para garantir que dados não serão truncados, passe um valor grande o suficiente para acomodar o item de dados maior que o esperado.
Comentários
Coluna da fonte de dados pode ter um tipo ODBC de SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL, ou SQL_NUMERIC.O conjunto de registros deve definir um membro de dados de campo do tipo LPSTR.
Se você inicializar prgStrVals e prgLengths para Nulo, em seguida, as matrizes que eles apontam para serão alocadas automaticamente, com tamanhos iguais ao tamanho do conjunto de linhas.
Observação |
---|
Exchange de campo de registro em massa só transfere dados da fonte de dados para o objeto recordset.Para tornar seu recordset atualizável, você deve usar a função de API ODBC SQLSetPos. |
Para obter mais informações, consulte os artigos Recordset: buscar registros em massa (ODBC) e Registro campo Exchange (RFX).
Exemplo
Você deve escrever manualmente chamadas em sua DoBulkFieldExchange substituir.Este exemplo mostra uma chamada para RFX_Text_Bulk, bem como uma chamada para RFX_Long_Bulk, para transferência de dados.Essas chamadas são precedidas por uma chamada para CFieldExchange::SetFieldType.Observe que para os parâmetros, você deve chamar as funções RFX em vez das funções RFX em massa.
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
Cabeçalho: afxdb.h