Artigo: 243349 - Última revisão: sexta-feira, 7 de Outubro de 2005 - Revisão: 2.5

0x8000FFFF mensagem "Falha catastrófica" com o controlador de ODBC para SQL Server

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Reduzir tudo

Sintomas

O seguinte erro pode ser gerado pelo controlador ODBC do Microsoft SQL Server, especialmente quando utiliza o controlador ODBC em ambientes de conjunto de ligação como, por exemplo, Internet Information Server (IIS):
Erro 0x8000FFFF acessível falha
Os sintomas típicos são que o controlador é utilizado com êxito durante um período de tempo diferentes, mas o erro ocorre quando tenta abrir um objecto de ligação.

Este problema ocorre com o 3.70.0690 criar do controlador de ODBC do Microsoft SQL Server (Sqlsrv32.dll) mas não ocorre com versões anteriores. Além disso, o problema não ocorre quando utiliza o nativo Microsoft SQL Server OLE DB Provider (SQLOLEDB.dll).

Causa

O controlador de ODBC para Microsoft SQL Server está a carregar o ficheiro Winmm.dll para funções de temporização. Enquanto Winmm.dll é principalmente uma DLL de multimédia, contém algumas funções de temporização que resolvem para o nível de milisegundos e o controlador de ODBC para Microsoft SQL Server está a utilizar estas funções para problemas de temporização interno.

Na 3.70.0690 compilação do controlador ODBC do Microsoft SQL Server, Winmm.dll está a ser descarregada prematuramente e os apontadores para função não estão a ser limpos fora. Por conseguinte, aparece o apontador de função fazer referência a um endereço válido mas a localização que aponta para memória já não é válida.

Esta violação de acesso (AV) a ser assinalada pela excepção a processar o OLE DB Service Components e uma 0x08000FFFF mensagem "Failure acessível", em seguida, é devolvida ao cliente.

Resolução

Agora é disponibilizada pela Microsoft uma correcção suportada, mas destina-se apenas a corrigir o problema descrito neste artigo. Aplique-a apenas em computadores 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, a Microsoft recomenda que aguarde pelo próximo service pack do Microsoft Data Access Components que contenha esta correcção.

Para resolver este problema imediatamente, contacte o suporte técnico da Microsoft para obter a correcção. Para obter uma lista completa de números de telefone do suporte técnico da Microsoft e informações sobre os custos de suporte, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS (http://support.microsoft.com/default.aspx?scid=fh;en-us;cntactms)
Nota : em casos especiais, os custos normalmente inerentes às chamadas de suporte poderão ser anulados se um técnico de suporte da Microsoft determinar que uma actualização específica resolverá o problema. Os custos de suporte normais se aplicarão perguntas de suporte adicionais e problemas que não se enquadrem na atualização específica em questão.

A versão inglesa desta correcção deverá ter os seguintes atributos de ficheiro ou posteriores:
   Date      Time    Version      Size    File name     Platform
   -------------------------------------------------------------

   10/4/99           3.70.0737    25KB    odbcbcp.dll
   10/4/99           3.70.0737   505KB    sqlsrv32.dll

				

Como contornar



  • Reverter para uma versão anterior do controlador de ODBC para SQL Server, tal como o 3.70.0623 criar.

    - ou -
  • Utilize o fornecedor nativo do SQL Server (SQLOLEDB.dll).

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no início deste artigo.

Este problema foi corrigido no MDAC 2.5.

Mais Informação

Se existir algum dúvida a se este erro é a causa de um AV que poderá encontrar, um utilitário como TList.exe (a partir do Windows NT Resource Kit) ou ListDLLs.exe (de sysinternals.com) pode ser útil na determinação se Winmm.dll foi inicialmente carregado no processo, mas é carregado no momento da falha.

Instalação manual

  1. Fechar ou parar quaisquer aplicações ou serviços que estiverem a utilizar o ficheiro Sqlsrv32.dll. Isto pode incluir Internet Information Server (IIS), Microsoft Transaction Server (MTS) e qualquer ActiveX Data Objects (ADO) ou aplicações de ODBC.
  2. Transfira a correcção (CatastrophicFailure.exe) para um directório temporário e executá-la para extrair os seguintes ficheiros:

    Odbcbcp.dll Sqlsrv32.dll
  3. Localize e mude o nome de versão destes ficheiros, que deverá estar na pasta \Winnt\System32 para computadores Windows NT e na pasta \Windows\System para Windows 9 x computadores actual.
  4. Copiar a versão de correcção dos ficheiros para a mesma localização e, reinicie os serviços e aplicações.

A informação contida neste artigo aplica-se a:
  • Microsoft Data Access Components 2.1 Service Pack 2
  • Controlador Microsoft ODBC para Microsoft SQL Server 3.7
  • Microsoft Data Access Components 2.1
Palavras-chave: 
kbmt kbhotfixserver kbbug kbfix kbmdac210sp2fix kbodbc210fix kbqfe KB243349 KbMtpt
Tradução automáticaTraduçã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: 243349  (http://support.microsoft.com/kb/243349/en-us/ )