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

Ö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.
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ı
jdbc

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Властивості

Ідентифікатор статті: 313181 – останній перегляд: 06/30/2003 00:02:13 – виправлення: 2.0

Microsoft SQL Server 2000 Driver for JDBC

  • kbmt kbprb KB313181 KbMttr
Зворотний зв’язок