SORUN: el ile işlem modunda ancak klonlanmış bir bağlantı başlatılamıyor

Makale çevirileri Makale çevirileri
Makale numarası: 313181 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

JDBC için SQL Server 2000 sürücüsü kullanırken, aşağıdaki özel durumla karşılaşabilirsiniz:
Java.SQL.SQLException: [Microsoft] [JDBC için SQL Server 2000 sürücüsü] klonlanmış bir bağlantıyı el ile işlem modunda başlatmak oluşturulamıyor.

Neden

Birden çok ifadeyi JDBC sürücüsü el ile işlem modunda bir SQL Server veritabanına karşı çalıştırmak çalıştığınızda bu hata oluşur (AutoCommit = false) ve doğrudan kullanırken (SelectMethod doğrudan =) modu. Doğrudan modu sürücüsü için varsayılan moddur.

Çözüm

El ile hareket modu kullandığınızda, imleç için sürücünün SelectMethod özelliği ayarlamak veya bu makalenin "Daha fazla bilgi" bölümünde belirtilen şekilde her bağlantıda yalnızca bir etkin deyim kullandığınızdan emin olun gerekir.

Durum

Bu davranış tasarım yüzündendir.

Daha fazla bilgi

Davranışı Yeniden Oluşturma Adımları

Hata yeniden oluşturmak için şu kodu kullanın:

Not: Bu sorunu gidermek için gerekli olan kod değişiklikleri bilgi kodunu açıklamalarda Bkz.
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();
		}
	}
}
				

Referanslar

JDBC HTML Yardımı'na veya çevrimiçi kılavuzu, kopyalandı bağlantıları hakkında daha fazla bilgi için Microsoft SQL Server 2000 sürücüsü bağlantı dizesi özellikleri bölümüne bakın.Kopyalanan bağlantıları sürücüsü ile ilgili ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
313220SORUN: SQL Server JDBC ile beklenmeyen bağlantıları

Özellikler

Makale numarası: 313181 - Last Review: 30 Haziran 2003 Pazartesi - Gözden geçirme: 2.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2000 Driver for JDBC
Anahtar Kelimeler: 
kbmt kbprb KB313181 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:313181
Kullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.

Geri Bildirim Ver

 

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