Compartilhar via


conjunto de registros: Trabalhando com itens grandes de dados (ODBC)

Este tópico se aplica a classes MFC ODBC e as classes MFC DAO.

Observação:

Se você estiver usando as classes MFC DAO, gerenciar seus itens de dados grandes com classe CByteArray em vez de classe CLongBinary.Se você estiver usando classes MFC ODBC com linha em massa buscando, usar CLongBinary em vez de CByteArray. Para obter mais informações sobre buscar a linha em massa, consulte conjunto de registros: Buscando os registros em massa (ODBC).

Suponha que seu banco de dados pode armazenar grandes partes de dados, sistema autônomo bitmaps (fotografias de funcionários, mapas, imagens de produtos, objetos OLE e assim por diante).Esse tipo de dados é conhecido sistema autônomo um objeto grande binário (ou BLOB) porque:

  • Cada valor do campo é grande.

  • Ao contrário de números e outros tipos de dados simples, ela tem nenhum dimensionar previsível.

  • Os dados são formless da perspectiva do seu programa.

Este tópico explica que suporte oferecem as classes de banco de dados para trabalhar com esses objetos.

Gerenciamento de objetos grandes

Recordsets há duas maneiras de resolver a dificuldade de gerenciamento de objetos grandes binário especial.Você pode usar a classe CByteArray ou você pode usar classe CLongBinary.Em geral, CByteArray é a maneira preferencial para gerenciar grandes de dados binário.

CByteArray requer mais sobrecarga do que CLongBinary mas é mais capaz, conforme descrito em A classe CByteArray.CLongBinary é descrito resumidamente no A classe CLongBinary.

Para obter informações detalhadas sobre como usar CByteArray para trabalhar com itens de dados grandes, consulte Observação técnica 45.

Classe CByteArray

CByteArray é uma das classes de coleção MFC. A CByteArray objeto armazena uma matriz de bytes dinâmica — a matriz pode aumentar se for necessário. A classe fornece acesso rápido pelo índice, sistema autônomo com arrays C++ interno.CByteArray objetos podem ser serializados e despejados para fins de diagnóstico. A classe fornece funções de membro para Obtendo e definindo os bytes especificados, inserindo e acrescentando bytes e remoção de um byte ou todos os bytes.Esses recursos tornam analisando os dados binário mais fácil.Por exemplo, se o objeto binário for um objeto OLE, talvez você precise examinar alguns bytes de cabeçalho para acessar o objeto real.

Usando CByteArray em conjuntos de registros

Fornecendo um membro de dados de campo do seu conjunto de registros do tipo de CByteArray, fornecem uma base fixa no qual RFX pode gerenciar a transferência de tal objeto entre seu conjunto de registros e a fonte de dados e por meio da qual você pode manipular os dados dentro do objeto.RFX precisa de um site específico para dados recuperados e você precisa de uma maneira de acessar os dados subjacentes.

Para obter informações detalhadas sobre como usar CByteArray para trabalhar com itens de dados grandes, consulte Observação técnica 45.

Classe CLongBinary

A CLongBinary objeto é um shell simples ao redor de um HGLOBAL identificador para um bloco de armazenamento alocado no heap. Quando ele liga uma coluna da tabela que contém um objeto binário grande, RFX aloca o HGLOBAL controlar quando ele precisa transferência os dados para o conjunto de registros e armazena a alça no CLongBinary campo do conjunto de registros.

Por sua vez, você usa o HGLOBAL alça, m_hData, para trabalhar com sistema autônomo dados propriamente ditos, funcionando de acordo com você em qualquer trataria dados nele. Isso é onde CByteArray adiciona recursos.

Cuidado:

CLongBinary objetos não podem ser usados sistema autônomo parâmetros em chamadas de função.Além disso, sua implementação, que chama :: SQLGetData, necessariamente diminui o desempenho de rolagem para um instantâneo rolável.Isso pode também ser verdadeiro quando você usa um :: SQLGetData chame você mesmo para recuperar colunas do esquema dinâmico.

Consulte também

Conceitos

conjunto de registros (ODBC)

conjunto de registros: Obtendo somas e outros resultados agregados (ODBC)

Registro de campo Exchange (RFX)