ID do artigo: 190958 - Última revisão: quarta-feira, 2 de março de 2005 - Revisão: 2.4 EXEMPLO: Leitura/gravações AOTBLOB BLOB usando OLE DB consumidor modelo
Nesta páginaSumárioO exemplo AOTBLOB demonstra leitura e gravação de campos de dados binário longo (BLOB) usando as classes ATL OLE DB consumidor Template. O exemplo contém código para carregar e salvar um arquivo de bitmap e para carregar e salvar a imagem de bitmap em uma tabela de banco de dados. O exemplo também demonstra como solicitar que o usuário selecione uma fonte de dados usando a caixa de diálogo Microsoft Data Link, da mesma maneira como uma procura conectar-se em ODBC. Observação: O exemplo cria automaticamente uma tabela denominada BLOB1234 na fonte de dados destino para extração do campo BLOB e inserção. O código de exemplo foi testado com os seguintes provedores OLE DB: Provedor do Microsoft Jet 3.51 OLE DB (Msjtor35.dll 3.52.1527.4) O exemplo também foi testado com os seguintes drivers ODBC acessados através do provedor Microsoft OLE DB para drivers ODBC: Microsoft OLE DB Provider para Oracle (msdaora.dll 02.00.3002.15) Microsoft OLE DB Provider para SQL Server (SQLOLEDB.dll 07.00.0502) Microsoft OLE DB Provider para ODBC drivers (MSDASQL.dll 02.00.3002.11) Driver ODBC Microsoft SQL Server (Sqlsrv32.dll 3.60.0319). Driver Microsoft ODBC para Oracle (Msora32.dll 2.573.292700). Driver do Microsoft Access (Odbcjt32.dll 3.51.1713) Mais InformaçõesOs seguintes arquivos estão disponíveis para download no Centro de download da Microsoft: Aotblob.exe (http://download.microsoft.com/download/vc60ent/sample3/1/win98/en-us/aotblob.exe) Para obter informações adicionais sobre como baixar arquivos de suporte da Microsoft, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft: 119591
(http://support.microsoft.com/kb/119591/EN-US/
)
Como obter arquivos de suporte da Microsoft a partir de serviços online Microsoft examinou esse arquivo em busca de vírus. Microsoft utilizou o mais recente software de detecção de vírus que estava disponível na data em que o arquivo foi publicado. O arquivo é armazenado em servidores com segurança avançada que ajudam a evitar qualquer alteração não autorizada no arquivo. Lendo dados BLOB usando os modelos de consumidor de banco de dados de OLE do ATLO ATL OLE DB consumidor Assistente de modelo cria uma leitura totalmente funcional-somente classe que lê um campo de banco de dados (BLOB) binário longo. Se você quiser gravar para o campo binário longo, você deve fazer modificações à classe Assistente-gerado.Uma classe de consumidor do gerado pelo Assistente OLE DB, o provedor preenche automaticamente quaisquer variáveis de membro de campo BLOB com um ponteiro ISequentialStream para a linha atual. Para ler dados do campo BLOB, você chama o método de leitura da interface ISequentialStream em um loop até que não há mais dados são enviados pelo provedor OLE DB. Observe que a maioria dos provedores não fornecer você com o comprimento total de dados antes de ler os dados, para que você deve criar um buffer dinamicamente para armazenar os dados como você lê-lo. Gravar dados BLOB usando os modelos de consumidor de banco de dados de OLE do ATLPara escrever a um campo BLOB, você deve liberar o ponteiro ISequentialStream fornecido a você pelo provedor OLE DB e substituí-lo por um ponteiro ISequentialStream que você implementar. O provedor chama ISequentialStream::Read, em seguida, o ponteiro de interface até que não mais bytes são retornados. Isso de maneira inverte a função do consumidor e provedor. O consumidor fornece ponteiro ISequentialStream, e o provedor chama ISequentialStream::Read. Observe que certos provedores OLE DB exigem que você indica com antecedência como muitos bytes são no campo BLOB quando você escreve os dados BLOB. Para trabalhar com provedores tantas quanto possível, o exemplo fornece as informações comprimento para o provedor em todos os casos.Para simplificar a leitura e gravação de dados BLOB com OLE, o exemplo de AOTBLOB tem uma classe auxiliar chamada CISSHelper. A classe CISSHelper implementa toda a interface ISequentialStream. A classe também tem um buffer interno, que é usado para armazenar e extrair os dados BLOB. Observe que o CISSHelper não destrói próprio quando sua contagem de versão cai para zero, semelhante a uma interface COM típica. O AddRef e Release são deixados para que o provedor pode chamá-los, mas este exemplo usa uma pilha alocada objeto e depende do destruidor C++ para limpar o objeto. Para permitir gravação em um campo BLOB, você deve modificar a macro ATL OLE DB consumidor gerado pelo Assistente para vinculação e adicionar suporte para um indicador de comprimento e o status do campo como abaixo: Sem modificações adicionais para os modelos gerado pelo assistente são necessários. Ler a partir do campo BLOB usando um modificado (comprimento e status adicionado) consumidor modelo de classe, siga esta fórmula básica:
A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 190958
(http://support.microsoft.com/kb/190958/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesTraduções deste artigo |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar para o início