Artigo: 190958 - Última revisão: quarta-feira, 2 de Março de 2005 - Revisão: 2.4 EXEMPLO: AOTBLOB ler/escritas BLOB utilizando o modelo OLE DB Consumer
Nesta páginaSumárioO exemplo AOTBLOB demonstra leitura e escrita campos de dados binários longos (BLOB) utilizando as classes ATL OLE DB consumidor modelo. O exemplo contém código para carregar e guardar um ficheiro de mapa de bits para carregar e guardar a imagem de mapa de bits numa tabela da base de dados. O exemplo também demonstra como solicita ao utilizador para seleccionar uma origem de dados utilizando a caixa de diálogo Microsoft Data Link, da mesma forma como uma procura estabelecer ligação de ODBC. NOTA: O exemplo cria automaticamente uma tabela chamada BLOB1234 na origem de dados de destino para inserção e a extracção do campo BLOB. O código de exemplo foi testado com os seguintes fornecedores de OLE DB: Microsoft Jet 3.51 OLE DB Provider (Msjtor35.dll 3.52.1527.4) O exemplo também foi testado com os seguintes controladores ODBC acedidos através de Microsoft OLE DB Provider para controladores ODBC: Fornecedor Microsoft OLE DB para Oracle (msdaora.dll 02.00.3002.15) Fornecedor Microsoft OLE DB para SQL Server (SQLOLEDB.dll 07.00.0502) Fornecedor Microsoft OLE DB para controladores ODBC (Msdasql.dll 02.00.3002.11) Microsoft controlador de ODBC para SQL Server (Sqlsrv32.dll 3.60.0319). Controlador Microsoft ODBC para Oracle (Msora32.dll 2.573.292700). Controlador do Microsoft Access (Odbcjt32.dll 3.51.1713) Mais InformaçãoOs ficheiros seguintes estão disponíveis para transferência a partir do Centro de transferências da Microsoft: Aotblob.exe (http://download.microsoft.com/download/vc60ent/sample3/1/win98/en-us/aotblob.exe) Para obter informações adicionais sobre como transferir ficheiros de suporte da Microsoft, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base: 119591
(http://support.microsoft.com/kb/119591/EN-US/
)
Como obter ficheiros de suporte da Microsoft a partir de serviços on-line Microsoft procedeu de vírus neste ficheiro. Microsoft utilizou o mais recente software de detecção de vírus que estava disponível na data em que o ficheiro foi publicado. O ficheiro é alojado em servidores com segurança avançada que o ajudam a impedir alterações não autorizadas ao ficheiro. A ler dados BLOB utilizando os modelos do ATL OLE DB ConsumerO ATL OLE DB consumidor modelo assistente cria uma leitura totalmente funcional-apenas classe indicando um campo de base de dados binário longos (BLOB). Se pretender escrever para o campo binário longo, tem de efectuar modificações a classe assistente-gerado.Classe um consumidor de OLE DB gerado pelo assistente, o fornecedor preenche automaticamente quaisquer variáveis de membros do campo BLOB com um ponteiro ISequentialStream para a linha actual. Para ler dados do campo BLOB, chamar o método leitura da interface ISequentialStream num ciclo até não mais dados são enviados pelo fornecedor de OLE DB. Tenha em atenção que a maior parte dos fornecedores não fornecerem o comprimento total de dados antes de ler os dados, pelo que terá de criar uma memória intermédia dinamicamente para conter os dados à medida que lê. Escrever dados BLOB utilizando os modelos do ATL OLE DB ConsumerPara escrever a um campo BLOB, tem de libertar o ponteiro ISequentialStream fornecido pelo fornecedor de OLE DB e substituí-lo por um apontador de ISequentialStream implementar. O fornecedor, em seguida, chama ISequentialStream::Read no apontador de interface até não mais bytes são devolvidos. Esta forma Inverte a função do consumidor e fornecedor. O consumidor fornece ponteiro ISequentialStream, e o fornecedor chama ISequentialStream::Read. Note que alguns fornecedores de OLE DB requerem que indicar mais à frente quantos bytes no campo BLOB quando escreve os dados BLOB. Para trabalhar com fornecedores tantos quanto possível, o exemplo fornece as informações de comprimento para o fornecedor em todos os casos.Para simplificar a leitura e escrita de dados BLOB com o OLE DB, exemplo AOTBLOB tem uma classe de programa auxiliar denominada CISSHelper. A classe CISSHelper implementa a interface ISequentialStream toda. A classe também tem uma memória intermédia incorporada, o que é utilizada para armazenar e extrair os dados BLOB. Tenha em atenção que o CISSHelper não destruir próprio quando o contagem de versão desce para zero, semelhante a uma interface COM normal. AddRef os Release são deixados na forma a que o fornecedor pode chamá-los, mas este exemplo utiliza uma pilha atribuída objecto e depende do processo de destruição C++ para limpar o objecto. Para permitir a escrita de um campo BLOB, tem de modificar a macro ATL OLE DB Consumer gerado pelo Assistente de ligação e adicionar suporte para um indicador de comprimento e o estado do campo como abaixo: São necessários sem modificações adicionais para os modelos gerado pelo assistente. Ler a partir do campo BLOB utilizando um modificado (comprimento e estado 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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 de Artigos |






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


Voltar ao topo