Partilhar via


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çãoObservaçã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

Consulte também

Referência

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

Conceitos

Globais e Macros do MFC