CORRECÇÃO: Mensagem de erro quando executa uma instrução de SQL utilizando o fornecedor de OLE DB para DB2: "SQLSTATE 22007, SQLCODE 181"

Traduções de Artigos Traduções de Artigos
Artigo: 924599 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Considere o seguinte cenário. Executar uma instrução de SQL utilizando o Microsoft OLE DB Provider para DB2. A instrução SQL transmite um parâmetro de data/hora do Microsoft SQL Server para uma coluna de base de dados IBM DB2. A Coluna da base de dados IBM DB2 utiliza o tipo de dados IBM DB2 DATE. Neste cenário, poderá receber a seguinte mensagem de erro:
SQLSTATE: 22007, SQLCODE:-181
Por exemplo, a seguinte instrução SQL transmite um parâmetro de data/hora do SQL Server para uma coluna de base de dados IBM DB2.
declare @var1 datetime
set @var1 = '2006-09-27 00:00:00.000'
SELECT COL1, COL2, COL3
FROM IBMDB2.TESTDATA.USER1.TABLE1
WHERE COL2 = @var1
Neste exemplo, este problema ocorre se a coluna COL2 utiliza o tipo de dados IBM DB2 DATE.

Causa

Durante a execução, OLE DB Provider for DB2 não sabe o tipo de dados IBM DB2 correcto para a coluna de base de dados IBM DB2 a que o parâmetro de data/hora do SQL Server é transmitido. Assim, OLE DB Provider for DB2 inclui as informações de data e as informações de tempo do valor do fornecedor OLE DB para DB2 passa para a base de dados IBM DB2. As informações de hora não são válidas para o tipo de dados IBM DB2 DATE. Por conseguinte, recebe a mensagem de erro mencionada na secção "Sintomas".

Resolução

Microsoft Host Integration Server 2006

Para resolver este problema, obtenha o service pack mais recente do Host Integration Server 2006. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
979497Como obter o service pack mais recente do Host Integration Server 2006

Microsoft Host Integration Server 2004

Tem uma correcção suportada disponível na Microsoft. No entanto, esta correcção destina-se a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pela próxima actualização de software que contenha esta correcção.

Se a correcção está disponível para transferência, existe uma secção "denominada transferência de correcção disponível" na parte superior deste artigo da base de dados de conhecimento. Se esta secção não for apresentado, contacte o serviço de apoio a clientes da Microsoft e suporte para obter a correcção.

Nota Se ocorrerem problemas adicionais ou se for necessário efectuar algum procedimento para resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos normais do suporte serão aplicados a perguntas de suporte adicionais e problemas que não são elegíveis para esta correcção específica. Para obter uma lista completa dos números de telefone do serviço de apoio a clientes da Microsoft e suporte da ou para criar um pedido de assistência separado, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Nota O formulário "Transferência de correcção disponível" apresenta os idiomas para o qual a correcção está disponível. Se não vir o idioma, é porque uma correcção não está disponível para esse idioma.

Informações do ficheiro

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas na hora universal coordenada (UTC). Quando visualiza as informações do ficheiro, são convertida para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador Fuso horário no item Data e hora no painel de controlo.
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataformaRequisito SP
Db2oledb.dll6.0.2048.0488,96003-Nov-200617: 31x 86SP1
Db2oledb.hNão aplicável24,57903-Nov-200617: 36Não aplicávelSP1
Ddmstr.dll6.0.2048.044,03203-Nov-200617: 31x 86SP1
Drdaresync.exe6.0.2048.0337,40803-Nov-200617: 32x 86SP1
Microsoft.hostintegration.dataaccesslibrary.dll6.0.2048.086,01603-Nov-200617: 31x 86SP1
Microsoft.hostintegration.dataaccesstool.exe6.0.2048.02,703,36003-Nov-200617: 32x 86SP1
Microsoft.hostintegration.msdb2client.dll6.0.2048.0114,68803-Nov-200617: 31x 86SP1
Mseidb2c.dll6.0.2048.071,68003-Nov-200617: 31x 86SP1
Mseidb2d.dll6.0.2048.0435,20003-Nov-200617: 31x 86SP1
Mseidrda.dll6.0.2048.0695,80803-Nov-200617: 32x 86SP1
Nota Devido a dependências de ficheiros, a correcção mais recente que contém estes ficheiros também poderão conter ficheiros adicionais.

Microsoft OLE DB Provider para DB2 versão 1.0

Tem uma correcção suportada disponível na Microsoft. No entanto, esta correcção destina-se a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pela próxima actualização de software que contenha esta correcção.

Se a correcção está disponível para transferência, existe uma secção "denominada transferência de correcção disponível" na parte superior deste artigo da base de dados de conhecimento. Se esta secção não for apresentado, contacte o serviço de apoio a clientes da Microsoft e suporte para obter a correcção.

Nota Se ocorrerem problemas adicionais ou se for necessário efectuar algum procedimento para resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos normais do suporte serão aplicados a perguntas de suporte adicionais e problemas que não são elegíveis para esta correcção específica. Para obter uma lista completa dos números de telefone do serviço de apoio a clientes da Microsoft e suporte da ou para criar um pedido de assistência separado, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Nota O formulário "Transferência de correcção disponível" apresenta os idiomas para o qual a correcção está disponível. Se não vir o idioma, é porque uma correcção não está disponível para esse idioma.

Informações do ficheiro

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas na hora universal coordenada (UTC). Quando visualiza as informações do ficheiro, são convertida para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador Fuso horário no item Data e hora no painel de controlo.
versão de 32 bits (x 86)
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataformaRequisito SP
Db2oledb.dll6.0.2048.0488,96003-Nov-200617: 31x 86SP1
Db2oledb.hNão aplicável24,57903-Nov-200617: 36Não aplicávelSP1
Ddmstr.dll6.0.2048.044,03203-Nov-200617: 31x 86SP1
Drdaresync.exe6.0.2048.0337,40803-Nov-200617: 32x 86SP1
Microsoft.hostintegration.dataaccesslibrary.dll6.0.2048.086,01603-Nov-200617: 31x 86SP1
Microsoft.hostintegration.dataaccesstool.exe6.0.2048.02,703,36003-Nov-200617: 32x 86SP1
Microsoft.hostintegration.msdb2client.dll6.0.2048.0114,68803-Nov-200617: 31x 86SP1
Mseidb2c.dll6.0.2048.071,68003-Nov-200617: 31x 86SP1
Mseidb2d.dll6.0.2048.0435,20003-Nov-200617: 31x 86SP1
Mseidrda.dll6.0.2048.0695,80803-Nov-200617: 32x 86SP1
versão de 64 bits (x 64)
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataformaRamo de serviço
Db2oledb.dll7.0.2535.0758,54407-Nov-200612: 34x 64Não aplicável
Microsoft.hostintegration.dataaccesslibrary.dll7.0.2535.02,550,61607-Nov-200612: 34x 64Não aplicável
Microsoft.hostintegration.dataaccesstool.exe7.0.2535.0613,20007-Nov-200612: 34x 64Não aplicável
Mseidrda.dll7.0.2535.01,355,53607-Nov-200612: 34x 64Não aplicável
Snanls.dll7.0.2535.0128,77607-Nov-200612: 34x 64Não aplicável
Db2oledb.dll7.0.2535.0516,88007-Nov-200612: 34x 86SYSWOW
Mseidrda.dll7.0.2535.0781,07207-Nov-200612: 34x 86SYSWOW
Snanls.dll7.0.2535.0105,22407-Nov-200612: 34x 86SYSWOW
Nota Devido a dependências de ficheiros, a correcção mais recente que contém estes ficheiros também poderão conter ficheiros adicionais.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Mais Informação

Esta correcção adiciona suporte para uma nova propriedade de cadeia de ligação. Utilizando a nova propriedade de cadeia de ligação, pode passar um parâmetro de data/hora do SQL Server para uma base de dados IBM DB2 como o tipo de dados IBM DB2 DATE. Fornecedor de OLE DB para DB2 elimina as informações de tempo no valor do parâmetro de data/hora do SQL Server. Por conseguinte, OLE DB Provider for DB2 transmite apenas as informações de data para a base de dados IBM DB2.

A nova propriedade de cadeia de ligação tem a seguinte definição:
Data e hora como data = Value
Esta propriedade da cadeia de ligação, pode definir Value como Verdadeiro ou Falso. Se adicionar o data e hora como data = TRUE declaração para a cadeia de ligação, o fornecedor de OLE DB para DB2 converte o parâmetro de data/hora do SQL Server para o tipo de dados IBM DB2 DATE. Em seguida, OLE DB Provider for DB2 transmite o valor para a base de dados IBM DB2.

Se adicionar o data e hora como data = FALSE instrução à cadeia de ligação OLE DB Provider for DB2 transmite o parâmetro de data/hora do SQL Server à base de dados IBM DB2 como especificar na instrução SQL. Neste caso, OLE DB Provider for DB2 passa as informações de data e as informações de hora na base de dados IBM DB2.

Nota Este comportamento é o comportamento predefinido se não adicionar a propriedade de Data e hora como data para a cadeia de ligação.

O exemplo de cadeia de ligação seguinte mostra como utilizar a propriedade de Data e hora como data.
; Everything after this line is an OLE DB initialization string.
Provider=DB2OLEDB;Password=<Password>;Persist Security Info=True;User ID=<Username>;Initial Catalog=S105FRDM;Defer Prepare=False;Derive Parameters=False;Network Transport Library=TCP;Host CCSID=37;PC Code Page=1252;Network Address=<Address>;Network Port=446;Package Collection=DB2USER;Default Schema=DB2USER;Default Qualifier=DB2USER;DBMS Platform=DB2/AS400;Process Binary as Character=False;Connection Pooling=True;Units of Work=RUW;DateTime As Date=TRUE
Importante depois de aplicar esta correcção e adicionar o data e hora como data = TRUE declaração para a cadeia de ligação, poderá receber a seguinte mensagem de erro:
SQLSTATE: 22007, SQLCODE:-180
Este problema ocorre se a coluna da base de dados IBM DB2 utiliza o tipo de dados IBM DB2 TIMESTAMP. Este problema ocorre porque a base de dados IBM DB2 espera receber as informações de data e as informações de tempo quando uma consulta é passada para uma coluna de base de dados IBM DB2 que utiliza o tipo de dados IBM DB2 TIMESTAMP. O data e hora como data = TRUE instrução faz com que o fornecedor de OLE DB para DB2 eliminar as informações de tempo no valor do parâmetro de data/hora do SQL Server. Por conseguinte, os dados não são válidos quando a consulta é transferida para a coluna da base de dados IBM DB2 que utiliza o tipo de dados IBM DB2 TIMESTAMP.

Se deve consultar uma tabela IBM DB2 que utiliza o tipo de dados IBM DB2 data e o tipo de dados IBM DB2 TIMESTAMP, poderá ter de utilizar várias cadeias de ligação que estão configuradas para utilizar as propriedades correctas. Em seguida, é possível consultar com êxito os diversos tipos de dados IBM DB2.

Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft
Os produtos de outros fabricantes que este artigo aborda são fabricados por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou outra, sobre o desempenho ou fiabilidade destes produtos.

Propriedades

Artigo: 924599 - Última revisão: 4 de fevereiro de 2010 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft Host Integration Server 2006 Enterprise Edition
  • Microsoft Host Integration Server 2006
  • Microsoft Host Integration Server 2004 Enterprise Edition
  • Microsoft Host Integration Server 2004 Standard Edition
  • Microsoft OLE DB Provider for DB2
Palavras-chave: 
kbmt kbautohotfix kbdb2oledb kbhis2004 kbfix kbbug kbhotfixserver kbqfe kbpubtypekc KB924599 KbMtpt
Tradução automática
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 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: 924599

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com