Você está offline; aguardando reconexão

PROBLEMA: Não é possível iniciar uma conexão clonada enquanto no modo de transação manual

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: 313181
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.
Sintomas
Ao usar o driver do Microsoft SQL Server 2000 para JDBC, você pode enfrentar a seguinte exceção:
Java.SQL.SQLException: [Microsoft] [SQLServer driver do 2000 para JDBC] não é possível iniciar uma conexão clonada no modo de transação manual.
Causa
Este erro ocorre quando você tenta executar várias instruções em um banco de dados SQL Server com o driver JDBC no modo de transação manual (AutoCommit = false) e ao usar a direta (SelectMethod = direta) modo. Modo direto é o modo padrão para o driver.
Resolução
Quando você usa o modo de transação manual, você deve definir a propriedade SelectMethod do driver até o cursor ou, certifique se de usar apenas uma instrução ativa em cada conexão conforme especificado na seção "Mais informações" deste artigo.
Situação
Esse comportamento é por design.
Mais Informações

Passos para reproduzir o problema

Use o seguinte código para reproduzir o erro:

Observação : consulte os comentários no código para obter informações sobre as alterações código que são necessárias para resolver o problema.
import java.sql.*;import java.io.*;public class Repro{	public static void main(String args[])	{		try {			Connection con;			Statement s1 = null;			ResultSet r1 = null;			Statement s2 = null;			ResultSet r2 = null;			Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 			con = DriverManager.getConnection(				"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs;SelectMethod=Direct;User=User;Password=Password");			//fix 1				//"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs;SelectMethod=Cursor;User=User;Password=Password");			con.setAutoCommit(false);						try {				s1 = con.createStatement();				r1 = s1.executeQuery("SELECT * FROM authors");								//fix 2				//r1.close();				//s1.close();				s2 = con.createStatement();				r2 = s2.executeQuery("SELECT * FROM publishers");			}			catch (SQLException ex)			{				System.out.println(ex);							}				}		catch (Exception e)		{			e.printStackTrace();		}	}}				
Referências
Para obter mais informações sobre conexões clonada, consulte a seção Propriedades de String de conexão o driver do Microsoft SQL Server 2000 para JDBC Ajuda em HTML ou o guia on-line.Para obter informações adicionais sobre clonados conexões com o driver, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
313220PROBLEMA: Conexões inesperados ao SQL Server com o JDBC
JDBC

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 313181 - Última Revisão: 06/30/2003 00:02:13 - Revisão: 2.0

Microsoft SQL Server 2000 Driver for JDBC

  • kbmt kbprb KB313181 KbMtpt
Comentários
/html>=">