Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
JDBC-stuurprogramma downloaden
Wanneer u werkt met inline SQL- of SQL Server-opgeslagen procedures die meer dan één resultatenset retourneren, biedt het Microsoft JDBC-stuurprogramma voor SQL Server de methode getResultSet in de klasse SQLServerStatement voor het ophalen van elke set geretourneerde gegevens. Wanneer u een instructie uitvoert die meer dan één resultatenset retourneert, kunt u bovendien de uitvoermethode van de klasse SQLServerStatement gebruiken, omdat hiermee een Booleaanse waarde wordt geretourneerd die aangeeft of de geretourneerde waarde een resultatenset of een aantal updates is.
Als de uitvoeringsmethode waar retourneert, heeft de instructie die is uitgevoerd een of meer resultatensets geretourneerd. U kunt toegang krijgen tot de eerste resultatenset door de getResultSet-methode aan te roepen. Als u wilt bepalen of er meer resultatensets beschikbaar zijn, kunt u de methode getMoreResults aanroepen, die een booleaanse waarde van true retourneert als er meer resultatensets beschikbaar zijn. Als er meer resultatensets beschikbaar zijn, kunt u de getResultSet-methode opnieuw aanroepen om deze te openen, door te gaan met het proces totdat alle resultatensets zijn verwerkt. Als de methode getMoreResults false retourneert, zijn er geen resultatensets meer die moeten worden verwerkt.
Als de uitvoermethode onwaar retourneert, heeft de instructie die is uitgevoerd een waarde voor het aantal updates geretourneerd, die u kunt ophalen door de getUpdateCount-methode aan te roepen.
Opmerking
Zie Een opgeslagen procedure gebruiken met een aantal updates voor meer informatie over het aantal updates.
In het volgende voorbeeld wordt een open verbinding met de voorbeelddatabase AdventureWorks2025 doorgegeven aan de functie en wordt een SQL-instructie samengesteld die, wanneer deze wordt uitgevoerd, twee resultatensets retourneert:
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();
}
}
In dit geval is het aantal teruggegeven resultaatssets bekend en bedraagt het twee. De code wordt echter geschreven, zodat als er een onbekend aantal resultatensets is geretourneerd, zoals bij het aanroepen van een opgeslagen procedure, ze allemaal worden verwerkt. Zie Complexe instructies verwerken voor een voorbeeld van het aanroepen van een opgeslagen procedure die meerdere resultatensets retourneert, samen met updatewaarden.
Opmerking
Wanneer u de aanroep uitvoert naar de methode getMoreResults van de klasse SQLServerStatement, wordt de eerder geretourneerde resultatenset impliciet gesloten.