Halihallo Juve
Das ResultSet ist genau dann empty, wenn die Bedingung ResultSet.getRecordCount()==0 wahr ist.
Das ist natürlich etwas einfacher als die Variante, die ich mit gebastelt hatte:
und zudem ist sie im Gegensatz zu Deiner immer richtig :-)
if (!rs2.isBeforeFirst() && !rs2.isAfterLast()) {...}
Denn sowohl isBeforeFirst() als auch isAfterLast liefern false, wenn das ResultSet leer ist. Funktioniert auch, allerdings weiß ich nicht, ob es noch eine andere Situation gibt, in der dies zutrifft.
Tja, es gibt eben genau andere Situationen:
nämlich wenn du in einem RecordSet *mit* Datensätzen einen oder
mehrere MoveNext() noch vor deiner if-Abfrage durchführst. Dann
meldet deine if-Abfrage sinngemäss: ResultSet ist leer, was es
offensichtlich eben nicht ist. Durchdenke dieses Beispiel mal.
Natürlich hast du vor deiner if-Abfrage wahrscheinlich keine
MoveNext's eingebaut, dann tut deine Lösung auch.
Aaaber... Plötzlich muss ein anderer Programmierer den Source
anpassen, merkt dies nicht und schon ist das Unheil geschehen.
Es folgen mehrere Minuten der Fehlersuche und das nur, weil die
Lösung eben nicht für 100% aller Fälle funktioniert.
Viele Grüsse
Philipp