Hallo,
ich soll im Rahmen einer Hausarbeit ein Datenbanksystem aufbauen und daraus Daten mit Java ausgeben.
Unter anderem rufe ich ich eine Stored Procedure mit einem übergebenen String auf. Am Ende der Procedure ist eine Select-Anweisung die ich in meinem Programm darstellen möchte.
Jedoch bekomme ich bei Aufruf der Prozedur immer nichts zurück.
Einsetzen tue ich Sybase SQL Anywhere 9
Java 5.0 und verwende den beigelegten iAnywhere JDBC-Treiber.
Mein Problem liegt meine ich darin, dass ich in der Prozedur mehrere Select- Anweisungen benutze und die Rückgabe der Prozedur, die Lösung der ersten Select-Anweisung ist.
Ich habe hierzu ein kleines Beispiel:
// Eine Stored Procedure
ALTER PROCEDURE "DBA"."anfrage"()
BEGIN
Select * FROM SCHEMA;
Select * FROM Kategorie;
END
// Aufruf in Java
Statement cstm = connection.createStatement();
ResultSet rs = cstm.executeQuery ("dba.anfrage");
rs besitzt anschließend das Resultset von der Tabelle Schema anstatt der Tabelle Kategorie.
Laut mehreren Quellen, müsste aber eigentlich die letzte Select- Anweisung die Rückgabe sein.
Jedoch ist es so, wenn ich direkt über das Sybase Interactive SQL Fenster die Procedure aufrufe, so bekomme ich wie ich erwartet habe, die letzte SELECT-Anweisung zurückgeliefert und somit die Tabelle Kategorie.
Hoffe mir kann das wer erklären bzw eine Lösung geben was ich ändern muss.
gruß
ich soll im Rahmen einer Hausarbeit ein Datenbanksystem aufbauen und daraus Daten mit Java ausgeben.
Unter anderem rufe ich ich eine Stored Procedure mit einem übergebenen String auf. Am Ende der Procedure ist eine Select-Anweisung die ich in meinem Programm darstellen möchte.
Jedoch bekomme ich bei Aufruf der Prozedur immer nichts zurück.
Einsetzen tue ich Sybase SQL Anywhere 9
Java 5.0 und verwende den beigelegten iAnywhere JDBC-Treiber.
Mein Problem liegt meine ich darin, dass ich in der Prozedur mehrere Select- Anweisungen benutze und die Rückgabe der Prozedur, die Lösung der ersten Select-Anweisung ist.
Ich habe hierzu ein kleines Beispiel:
// Eine Stored Procedure
ALTER PROCEDURE "DBA"."anfrage"()
BEGIN
Select * FROM SCHEMA;
Select * FROM Kategorie;
END
// Aufruf in Java
Statement cstm = connection.createStatement();
ResultSet rs = cstm.executeQuery ("dba.anfrage");
rs besitzt anschließend das Resultset von der Tabelle Schema anstatt der Tabelle Kategorie.
Laut mehreren Quellen, müsste aber eigentlich die letzte Select- Anweisung die Rückgabe sein.
Jedoch ist es so, wenn ich direkt über das Sybase Interactive SQL Fenster die Procedure aufrufe, so bekomme ich wie ich erwartet habe, die letzte SELECT-Anweisung zurückgeliefert und somit die Tabelle Kategorie.
Hoffe mir kann das wer erklären bzw eine Lösung geben was ich ändern muss.
gruß