PROBLEMA: Erro 7008 ocorre ao usar o provedor DB2OLEDB com DB2/400

IMPORTANTE: 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: 286464
Sintomas
Quando você usar o provedor Microsoft OLE DB para DB2 (DB2OLEDB) para tentar executar uma instrução INSERT, UPDATE ou DELETE contra uma tabela DB2/400, a seguinte mensagem de erro:
Provedor OLE/DB retornado mensagem: Ocorreu erro de SQL. Consulte a documentação para sua versão de DB2 específico para uma descrição do erro nativo e estado SQL associado. SQLSTATE: 55019, SQLCODE:-7008
Observação : este erro também pode ser exibida se você está tentando inserir, atualizar ou excluir de um servidor vinculado do SQL Server usando o provedor DB2OLEDB e você estiver usando a sintaxe OPENQUERY.

Se você estiver tentando inserir, atualizar ou excluir de um servidor vinculado do SQL Server usando o provedor DB2OLEDB, você também pode receber o seguinte erro quando você estiver usando consulta de nome parte 4:
Servidor: Mensagem 7306, nível 16, estado 2, linha 1 não foi possível abrir tabela 'CATALOGNAME.SCEMANAME.TABLENAME' do provedor do OLE DB 'DB2OLEDB'. Erro de provedor desconhecido.
Se você ativar rastreamento usando TRACEON(7300) DBCC , você receberá a seguinte mensagem de erro:
Servidor: Mensagem 7306, nível 16, estado 2, linha 1 não foi possível abrir tabela 'CATALOGNAME.SCEMANAME.TABLENAME' do provedor do OLE DB 'DB2OLEDB'. Erro de provedor desconhecido. Rastreamento de erro de OLE [Erro de não-interface: OLE provedor DB2OLEDB retornou DBPROP_STRUCTUREDSTORAGE sem DBPROPVAL_OO_BLOB sendo suporte]. Rastreamento de erro de OLE [provedor OLE/DB 'DB2OLEDB' IOpenRowset::OpenRowset retornado 0x80040e14: erro de provedor desconhecido.].
Causa
Isso ocorrerá sob a seguinte combinação de condições:
  • A fonte de dados é DB2/400.
  • A propriedade de inicialização Automática confirmar é definida como FALSE. Você pode definir as propriedades de inicialização em um arquivo UDL usando links de dados do Microsoft, a seqüência de inicialização do OLE DB ou seqüência de conexão ADO.
  • A propriedade de inicialização de Transação distribuída é definida como TRUE. Observação: isso se aplica apenas ao Host Integration Server.
  • O objeto de destino que você está tentando atualizar é uma AS / 400 arquivo físico ou chave arquivo físico que residem em uma AS / 400 biblioteca (em oposição a uma coleção de DB2/400) para o diário não foi habilitado.
Resolução
Duas maneiras de evitar esse problema são:
  • Defina Confirmar automaticamente como verdadeiro, ou definir Transação distribuída como FALSE. Nesse caso, operações INSERT, UPDATE e DELETE são confirmadas automaticamente sempre que eles são executados. Diário não é necessário.
  • Ativar armazenamento no diário nas / 400 da tabela particular (arquivo físico) para o qual você deseja fazer um INSERT, UPDATE ou DELETE.

    Para ativar o armazenamento no diário, faça o seguinte:
    1. Crie o receptor de diário (CRTJRNRCV).
    2. Crie o diário (CRTJRN), fornecendo o destinatário do diário criado na etapa 1.
    3. Inicie o arquivo físico do diário (STRJRNPF), fornecendo o diário e o receptor diário criado nas etapas 1 e 2 e associar o diário para um determinado SQL tabela (arquivo físico).
importante: Se você estiver tentando fazer o INSERT em um servidor vinculado do Microsoft SQL Server, você deve ativar o armazenamento no diário. SQL Server inicia automaticamente uma transação e, portanto, configuração Automática confirmar como TRUE não funcionará.
Situação
Esse comportamento é por design.
Mais Informações
Para obter mais informações sobre como usar comandos mencionados neste artigo, consulte o IBM OS/400 backup e recuperação (documento número SC41-5304-03) e IBM OS/400 CL referência V4R4 (documento número SC41-5722-03).


AS / 400 e DB2 são produtos de IBM.

Os produtos de terceiros descritos neste artigo são fabricados por empresas que são independentes da Microsoft. A Microsoft não oferece garantia, implícita ou não, em relação ao desempenho ou à confiabilidade desses produtos.
OS400 SO/400 SEU 2000

Propriedades

ID do Artigo: 286464 - Última Revisão: 02/22/2007 19:12:59 - Revisão: 2.3

Microsoft Host Integration Server 2000 Standard Edition, Microsoft SNA Server 4.0 Service Pack 2, Microsoft SNA Server 4.0 Service Pack 3, Microsoft SNA Server 4.0 Service Pack 4

  • kbmt kb3rdparty kbdb2 kbprb KB286464 KbMtpt
Comentários