SQL Befehle ausführen und deren Ergebnisse verarbeiten

Status
Nicht offen für weitere Antworten.

Clip

Bekanntes Mitglied
Hallo,

Ich habe SQL Befehle die ich an die DB senden möchte. Dabei weiß ich zur Laufzeit nie, ob es sich im selects, updates, Strored Procedures, compute oder print Anweisungen handelt.
Mein Problem ist, dass ich nicht weiß, wie ich diese Möglichkeiten programatisch behandeln soll. Z.B. Kann ich select befehle mit 'executeQuery' absetzten, update und insert Befehle hingegen sinf besser mit 'executeUpdate' verarbeitbar. Was ich aber mit Stored Procedures und Print Anweisungen machen soll weiß ich nicht. Zude, gefällt es mir nicht (wirklich garnicht) unterschiedliche Methoden zum Ausführen eines Befehles benutzen zu sollen. Benutze ich aber einfach die 'execute' Methode, weiß ich nicht woher ich wissen soll ob ich ein ResultSet oder einen String zurückgeliefert bekomme. Oder nichts im Falle eines update oder insert Befehles.

Ich habe ein Programm in dem der Benutzer Komadozeilen basiert SQL Befehle absetzten kann und deren Ergebnisse angezeigt bekommt.

Danke!
 
Welche Befehle Queries sind und welche Actions ist doch
in SQL definiert.

Scan doch einfach den eingegebenen SQL-Befehl und mach'
eine Fallunterscheidung entsprechend des Befehls.
 
In diesem Fall kann ich aber keine Stored Procedures erkennen. Weil die können ja evtl. immer anders heissen.
Zudem bekomme ich auch keine Print und compute Befehlsresultate geliefert.
 
Ichhabe jetzt:
Code:
    private void processInput(String command) throws SQLException {
        Statement stm = connection.getConnection().createStatement();

        // Kopfgesteuerte Scheilfe ausführen solange stm.getMoreResults() = true
        // ist.
        do {
            // ResultSet rs = stm.executeQuery(command);
            stm.execute(command);
            int rowcount = stm.getUpdateCount();
            if (rowcount == -1) {
                ResultSet rs = stm.getResultSet();
                if (rs != null)
                    drawDataGrid(rs);
            } else {
                stm.getMoreResults();
                ResultSet rs = stm.getResultSet();
                if (rs != null)
                    drawDataGrid(rs);
                else{
                    System.out.println(getRowsAffectedString(rowcount));
                }
            }
        } while (stm.getMoreResults());
    }

damit kann ich fast jedes Ergebnis anzeigen lassen. nur leider bekomme ich nach wie vor keine Print anweisungen geliefert. weiss jemand wie ich das hinbekommen kann?
danke!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben