Heyho alle zusammen :-)
Ich versuche mich gerade an einem System, mit dem ich vom Chat aus Hilfeseiten erstellen kann. Dazu nutze ich eine neue Tabelle in der Datenbank, komme allerdings nicht so ganz klar.
Ich habe folgenden Code in der CommandParser
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
else if (cmd.equals("h") || cmd.equals("help") || cmd.equals("hilfe")) {
if (arg.equals("edit") & client.isMinS9()) {
client.sendButlerMessage(channel.getName(), "Über diese Funktion wird es bald möglich sein, die Hilfeseiten zu editieren");
} else if (arg.equals("edit") & !client.isMinS9()){
client.sendButlerMessage(channel.getName(), "Über edit weiß ich nichts.");
} else if (arg == null){
Popup popup = new Popup("Chathilfe", "Das Wichtigste im Überblick", "Hier werden die wichtigsten Funktionen im Chat erklärt:##_/a TEXT_#TEXT wird als öffentliche Nachricht gepostet.##_/e_#Das eigene Profil editieren.##_/f_ - noch nicht verfügbar#Die Freundeliste wird geöffnet.##_/forum_#Das Forum von Knuddels.de wird geöffnet.##_/go CHANNEL_#Du wechselst in den Channel CHANNEL.##_/h TOPIC_#Die Hilfeseite zu TOPIC wird geöffnet. Wird Topic ausgelassen, wird diese Hilfe hier geöffnet.##_/ig NICK_#NICK wird ignoriert.##_/info_#Die Info des Channels öffnet sich.##_/kiss NICK_#NICK küssen.##_/knuddel NICK_#SO kannst du NICK knuddeln. Beachte hierbei, dass du Knuddels haben musst, um jemanden zu knuddeln. Dir wird dabei ein Knuddel abgezogen.##_/like TEXT_#Drücke mit Hilfe von 50 Zeichen in deinem Profil aus, was du magst.#Durch die EIngabe von _/like !_ löschst du diese Eingabe wieder.##_/me TEXT_#Drücke im Chat aus, was du tust.##_/p NICK:TEXT_#Schicke TEXT privat an NICK.##_/readme TEXT_#Setzt TEXT als Readme. Diese wird oben im Profil stehen, bis du eine neue Readme setzt.##_/time_#Zeigt die aktuelle Zeit an.##_/w NICK_#Zeigt das Profil von NICK an.##_/wc_#Zeigt alle Channels an.##_/wordmix_#Startet eine neue Runde Wordmix.", 400, 300);
} else {
PoolConnection pcon = ConnectionPool.getConnection();
PreparedStatement ps = null;
try {
Connection con = pcon.connect();
ps = con.prepareStatement("SELECT `title`, `subtitle`, `text` FROM `help` WHERE `command` = ?");
ps.setString(1, arg);
ResultSet rs = ps.executeQuery();
client.send(Popup.create(rs.getString("title"), rs.getString("subtitle"), rs.getString("text"), 400, 250));
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
}
}
pcon.close();
}
}
|
Es geht hierbei erstmal nur darum, einen Datensatz auszulesen und auszugeben. Allerdings bekomme ich folgende Fehlermeldung in der Konsole, wenn ich /h THEMA eingebe:
Java.sql.SQLException: Illegal operation on empty result set (hier in Zeile 1

.
Ich habe den Code von der Funktion /showcareer kopiert und angepasst. Wo ist der Fehler?
Zweite Frage dazu: Wie genau kann ich abfragen, ob es das Thema in der Datenbank überhaupt gibt, um eine passende Fehlermeldung ausgeben zu können?
Danke im Voraus für die Hilfe :-)
Gruß,
Eddie