CORRECÇÃO: Utilização de um cursor avançar rápido com um operador UNION e uma tabela remota pode causar a violação de acesso

Traduções de Artigos Traduções de Artigos
Artigo: 312294 - Ver produtos para os quais este artigo se aplica.
N.º DE BUGS: 356004 (SHILOH_BUGS)
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Se utilizar um cursor FAST_FORWARD baseia-se numa consulta que contém um operador UNION e uma tabela remota, poderá ocorrer uma violação de acesso (AV) de excepção.

Verá uma mensagem de erro no analisador de consultas semelhante ao:
ODBC: Erro 0, 19 de nível Distrito 1 SqlDumpExceptionHandler: 52 processo gerado excepção fatal EXCEPTION_ACCESS_VIOLATION c0000005. SQL Server está a terminar este processo. Ligação quebrada
Nota : outras ferramentas de acesso a dados devolvem mensagens de erro semelhantes. Esta pilha de chamadas é no registo de erro do SQL Server 2000 se não tiver qualquer service packs instalados:
007E1091 Module(sqlservr+003E1091) CCvtTree::PdrgcidBldColumns
007D8169 Module(sqlservr+003D8169) CCvtTree::PexprBuildQuery
007D775C Module(sqlservr+003D775C) CCvtTree::PexprFromTree
005642A9 Module(sqlservr+001642A9) CCvtTree::PqryFromTree
00564019 Module(sqlservr+00164019) BuildQueryFromTree
005D285A Module(sqlservr+001D285A) CFetchKeyset::CompileQuery
005D3050 Module(sqlservr+001D3050) CFetchKeyset::CompileSetFetchExp
005D32DA Module(sqlservr+001D32DA) CFetchKeyset::CompileKeysetExprs
005D3428 Module(sqlservr+001D3428) CFetchKeyset::Compile
005CF95C Module(sqlservr+001CF95C) CFetchComponent::smInitializeFetchComponent
005B786C Module(sqlservr+001B786C) CCursorDeclareStmt::Init
005BAA16 Module(sqlservr+001BAA16) CompileCursor
0060E7EC Module(sqlservr+0020E7EC) CCompPlan::FCompileStep
				

Resolução

Está disponível a partir da Microsoft uma correcção suportada. 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.

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 apresentada, submeta um pedido para o serviço de cliente do Microsoft e suporte para obter a correcção.

Nota Se ocorram problemas adicionais ou se for necessária qualquer resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos normais do suporte serão aplicados a problemas adicionais e questões de suporte que não se enquadrem esta correcção específica. Para obter uma lista completa dos números de telefone do suporte de cliente do Microsoft ou para criar um pedido serviço 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 a 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.A versão inglesa desta correcção deverá ter os seguintes atributos de ficheiro ou posteriores:
   Date         Time       Version        Size               File name
   ---------------------------------------------------------------------

   08/11/2001   06:04 AM   8.00.0465.01   7,409,748 bytes   Sqlservr.exe
				
Nota : devido a dependências de ficheiros, a correcção mais recente ou funcionalidade que contém os ficheiros anteriores poderão também conter ficheiros adicionais.


Como contornar

Para contornar este problema, utilize um cursor estático em vez de um cursor FAST_FORWARD.

Ponto Da Situação

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

Mais Informação

Vários problemas semelhantes também são corrigidos, incluindo cursores baseados nas consultas que contêm DISTINCT GROUP BY, HAVING, ou que agrega (para além de união) em conjunto com tabelas remotas ou em conjunto com projecções de objectos grandes (LOB) colunas (tais como texto , ntext e imagem ).

REFERÊNCIAS

SQL Server 2000 Books Online: tópicos "DECLARE CURSOR"; "Declaring cursores"

Propriedades

Artigo: 312294 - Última revisão: 12 de outubro de 2005 - Revisão: 3.6
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbmt kbautohotfix kbhotfixserver kbqfe kbbug kbfix kbqfe kbsqlserv2000presp2fix KB312294 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: 312294

Submeter comentários

 

Kontaktieren Sie uns, um weitere Hilfe zu erhalten

Kontaktieren Sie uns, um weitere Hilfe zu erhalten
Wenden Sie sich an den Answer Desk, um professionelle Hilfe zu erhalten.