Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino

Abfrage auf Oracle-DB dauert sehr labge

<< < (4/4)

DAU-in:
so, war bis eben im Meeting.

jetzt kann ich wieder suchen.

DAU-in:
Statement stmt = conn.createStatement();
logEvent("hinter statement=" + System.currentTimeMillis());
ResultSet rs = stmt.executeQuery(query);

er bricht ab vor dem ResultSet

kann ich die Spaltennamen der Tabelle abfragen?

flaite:
Wie sieht der query aus (wird über System.out.println ausgegeben)?

Vermutlich ist das resultset leer. Gibt dafür imho auch eine Methode, um die Anzahl der Treffer im Resultset auszugeben. Bin in dojo Schulung. Später.


--- Zitat ---
kann ich die Spaltennamen der Tabelle abfragen?

--- Ende Zitat ---
ja.

flaite:
Auf jeden Fall war in der Methode buildSelectInQueryCondition ein Fehler.
Hier die korrigierte Version

--- Code: ---private String buildSelectInQueryCondition(Iterator itKeys) {
StringBuffer buf = new StringBuffer();
buf.append("(");
                boolean first = true;
while (itKeys.hasNext()) {
String key = itKeys.next().toString();
                        if (first) {
                         first = false;
                       } else {
                        buf.append(',');
                      }
buf.append("'");
buf.append(key);
buf.append("'");
}
buf.append(")");

return buf.toString();

}



--- Ende Code ---

flaite:
um es noch mal zu sagen:
Für so ein Integrationsprojekt mit einer SQL Datenbank sollte man sich einen SQL-Client besorgen.
Damit kann man dann zunächst einmal die SQL Statements ausprobieren. Da läßt sich nämlich häufig eine Menge optimieren. Und mit so einem Client kann man die einfach schneller zusammenbauen.
Das gute an SQL ist, dass man mit einem Statement ein ganzes Resultset an Daten bekommen kann. In Notes muß man über die View iterieren. Über das Resultset muss man (wenn man nicht JPA, Hibernate oder ibatis benutuzt auch iterieren. Aber das ist was anderes. Ein view.getNextDocument ist ein call gegen den Server. Das resultset holt man sich 1x vom sql Server.
SQL Clients gibts frei im Netz. Man muß da nur den JDBC Treiber besorgen. Die Teile sind nicht so schwierig. Squirrel ist ziemlich beliebt. Dafür gibts auch gute tutorials.

1. Squirrel installer laufen lassne.
2. JDBC Treiber einbinden
3. Datenbank-Verbindung einrichten, die bei Squirrel seltsamerweise alias heißt.
Squirrel läuft mit ungefähr 50 Datenbanken. Da sind alle gängigen dabei.

Wenn es in Schleifen Ärger mit recycle von Notes Dokumenten gibt: Man kann die einen interessierenden Werte in Java Objekte speichern. Die Klasse VOTerminalDoc unten. Dann kann man die Notes Objekte instantiieren, die Werte in das Objekt schreibne und das Notes Objekt (etwa Document) direkt recyclen. 

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln