O seu browser não é suportado

Tem de atualizar o seu browser para utilizar o site.

Atualize para a versão mais recente do Internet Explorer

CORRECÇÃO: Fornecedor SQLOLEDB incorrectamente deixa transacção aberta

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: 281633
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
N.º DE BUGS: 58292 (SQLBUG_70)
N.º DE BUGS: 235846 (SHILOH)
Sintomas
Executar uma determinada sequência de comandos que envolvam transacções explícitas e parâmetros num programa de aplicação utilizando o fornecedor SQLOLEDB incorrectamente deixa uma transacção aberta. Isto pode causar bloquear grave e outros problemas.
Causa
Apesar da opção de SET 'implicit_transactions' está definida como desactivada, o fornecedor SQLOLEDB está a abrir uma transacção implícita.
Resolução

MDAC 2.6

Para resolver este problema, obtenha o service pack mais recente do Microsoft Data Access Components 2.6. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
300635Como obter o service pack mais recente do MDAC 2.6

Correcção

importante : deve ser instalado, Microsoft Data Access Components versão 2.6 antes de aplicar esta correcção.

A versão inglesa desta correcção deverá ter os seguintes atributos de ficheiro ou posteriores:
   Date       Time     Version     Size      File name      Platform   -----------------------------------------------------------------   11/22/00   8:43pm   8.00.0225   491,584   Sqloledb.dll   Intel   11/22/00   8:43pm   8.00.0225    61,440   Sqloledb.rll   Intel				
NOTA: devido a dependências de ficheiros, a correcção mais recente ou funcionalidade que contém os ficheiros acima pode também conter ficheiros adicionais.

Como contornar
Para contornar este problema, efectue um dos seguintes procedimentos:
  • Utilizar o fornecedor de OLEDB para ODBC em vez do SQLOLEDB fornecedor.

    - ou -
  • Colocar transacções adicionais à volta do código que cria o problema.
Ponto Da Situação
A Microsoft confirmou que este é um problema no Microsoft OLE DB Provider para SQL Server está incluído nas versões Microsoft Data Access Components (MDAC) 2.1, 2.5 e 2.6.

MDAC 2.6

Este problema foi corrigido pela primeira vez no Microsoft Data Access Components 2.6 Service Pack 1.


MDAC 2.5

Este problema foi primeiro corrigido na versão do Sqlredis.exe incluída no Microsoft SQL Server 7.0 Service Pack 4.
Mais Informação
A rastrear a aplicação, pode ver no SQL Server Profiler que o fornecedor SQLOLEDB está a enviar as seguintes instruções para o SQL Server:
SET FMTONLY ON select ... SET FMTONLY OFFset implicit_transactions off SET NO_BROWSETABLE OFF				
este faz com que um ' implicit_transaction ' já a ser aberto.

Quando utilizar o fornecedor de OLEDB para ODBC e o controlador do SQL Server, o mesmo código de Visual Basic/ADO envia as seguintes instruções ao SQL Server:
set implicit_transactions off SET NO_BROWSETABLE OFFSET FMTONLY ON select  ... SET FMTONLY OFF				
assim o SELECT FMTONLY abre uma transacção implícita com SQLOLEDB. No entanto, uma vez que a aplicação nunca abriu esta transação, a aplicação nunca normalmente fechará-lo. Esta transacção só irá ser fechada após a próxima transacção explícita.
pendente bloquear opentran

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 281633 - Última Revisão: 02/24/2014 12:42:46 - Revisão: 6.4

  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbfix kbmdac260sp1fix kbqfe KB281633 KbMtpt
Esta informação foi útil?