Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
JDBC sürücüsünü indirin
Birden fazla sonuç kümesi döndüren satır içi SQL veya SQL Server saklı yordamlarıyla çalışırken, SQL Server için Microsoft JDBC Sürücüsü döndürülen her veri kümesini almak için SQLServerStatement sınıfında getResultSet yöntemini sağlar. Ayrıca, birden fazla sonuç kümesi döndüren bir deyimi çalıştırırken SQLServerStatement sınıfının execute yöntemini kullanabilirsiniz çünkü döndürülen değerin bir sonuç kümesi mi yoksa güncelleştirme sayısı mı olduğunu belirten bir boole değeri döndürür.
Execute yöntemi true döndürürse, çalıştırılan deyim bir veya daha fazla sonuç kümesi döndürmüştür. getResultSet yöntemini çağırarak ilk sonuç kümesine erişebilirsiniz. Daha fazla sonuç kümesi olup olmadığını belirlemek için getMoreResults yöntemini çağırabilir ve daha fazla sonuç kümesi varsa trueboole değerini döndürebilirsiniz. Daha fazla sonuç kümesi varsa, bunlara erişmek için getResultSet yöntemini yeniden çağırabilir ve tüm sonuç kümeleri işlenene kadar işleme devam edebilirsiniz. getMoreResults yöntemi false döndürürse, işlenmek üzere başka sonuç kümesi yoktur.
Yürütme yöntemi false döndürürse, çalıştırılan deyim getUpdateCount yöntemini çağırarak alabileceğiniz bir güncelleştirme sayısı değeri döndürmüştür.
Uyarı
Güncelleştirme sayıları hakkında daha fazla bilgi için bkz. Güncelleştirme sayısıyla saklı yordam kullanma.
Aşağıdaki örnekte, AdventureWorks2025 örnek veritabanına açık bir bağlantı işleve geçirilir ve çalıştırıldığında iki sonuç kümesi döndüren bir SQL deyimi oluşturulur:
public static void executeStatement(Connection con) {
try (Statement stmt = con.createStatement();) {
String SQL = "SELECT TOP 10 * FROM Person.Contact; SELECT TOP 20 * FROM Person.Contact";
boolean results = stmt.execute(SQL);
int rsCount = 0;
// Loop through the available result sets.
do {
if (results) {
ResultSet rs = stmt.getResultSet();
rsCount++;
// Show data from the result set.
System.out.println("RESULT SET #" + rsCount);
while (rs.next()) {
System.out.println(rs.getString("LastName") + ", " + rs.getString("FirstName"));
}
}
System.out.println();
results = stmt.getMoreResults();
} while (results);
}
// Handle any errors that may have occurred.
catch (SQLException e) {
e.printStackTrace();
}
}
Bu durumda, döndürülen sonuç kümesi sayısının iki olduğu bilinmektedir. Ancak kod, saklı yordam çağrılırken olduğu gibi bilinmeyen sayıda sonuç kümesi döndürülürse bunların tümü işlenecek şekilde yazılır. Güncelleştirme değerleriyle birlikte birden çok sonuç kümesi döndüren bir saklı yordamı çağırma örneğini görmek için bkz. Karmaşık deyimleri işleme.
Uyarı
SQLServerStatement sınıfının getMoreResults yöntemine çağrı yaptığınızda, daha önce döndürülen sonuç kümesi örtük olarak kapatılır.