Das folgende Programm baut eine Verbindung zu der Access-<br>Datenbank "SQLTest" auf. Das Problem an der ganzen Sache ist die<br> letzte IF-Anweisung. Für den Fall, dass das Programm keinen entsprechenden <br>Eintrag in der Datenbank findet, soll es den Satz "Kein entsprechender <br>Eintrag gefunden" ausgeben. Wenn man nun einen vorhandenen Namen <br>eingibt, zeigt das Prog ganz korrekt den entsprechenden Datensatz an. <br>Wenn man nun allerdings den Namen eines nicht vorhandenen Eintrages angibt, zeigt das Programm nicht die entsprechende Fehlermeldung. Doch nun das beste: <br>
In der Datenbank ist ein Eintrag mit dem Titel "MCSE" vorhanden. Wenn man<br> nach diesem Titel sucht, wird der Datensatz korrekt angezeigt. <br>Wenn man nun aber nach "mcse" (also alles Kleinbuchstaben) sucht, <br>kommt auf einmal die entsprechende Fehlermeldung. Hat jemand eine <br>Erklärung dazu? Hier der Quellcode:<br>
<br>
<pre>
void accessDatabase()
{
Connection con;
Statement state;
ResultSet result;
String url = "jdbcdbc:SQLTest";
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
try{
Class.forName(driver);
}
catch (Exception e) {area.setText("Fehler beim Laden des Datenbank-Treibers");}
try{
con = DriverManager.getConnection(url);
state = con.createStatement();
String se = tf.getText();
String sql = "SELECT * FROM ISBN WHERE TITEL='"+se+"'";
result = state.executeQuery(sql);
area.setText("");
while(result.next())
{
String e1 = result.getString(1);
String e2 = result.getString(2);
String e3 = result.getString(3);
String e4 = result.getString(4);
if (e2.equals(se))
{
area.setText("ISBN-Nr. TITEL\n");
area.append(e1 +" "+e2 +" "+e3+" "+e4+"\n");
}
else
{
area.setText("Kein entsprechender Datensatz gefunden.");
break;
}
}
}
catch (Exception e) {area.setText("Fehler beim Zugriff auf Datenbank");}
}
</pre>
In der Datenbank ist ein Eintrag mit dem Titel "MCSE" vorhanden. Wenn man<br> nach diesem Titel sucht, wird der Datensatz korrekt angezeigt. <br>Wenn man nun aber nach "mcse" (also alles Kleinbuchstaben) sucht, <br>kommt auf einmal die entsprechende Fehlermeldung. Hat jemand eine <br>Erklärung dazu? Hier der Quellcode:<br>
<br>
<pre>
void accessDatabase()
{
Connection con;
Statement state;
ResultSet result;
String url = "jdbcdbc:SQLTest";
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
try{
Class.forName(driver);
}
catch (Exception e) {area.setText("Fehler beim Laden des Datenbank-Treibers");}
try{
con = DriverManager.getConnection(url);
state = con.createStatement();
String se = tf.getText();
String sql = "SELECT * FROM ISBN WHERE TITEL='"+se+"'";
result = state.executeQuery(sql);
area.setText("");
while(result.next())
{
String e1 = result.getString(1);
String e2 = result.getString(2);
String e3 = result.getString(3);
String e4 = result.getString(4);
if (e2.equals(se))
{
area.setText("ISBN-Nr. TITEL\n");
area.append(e1 +" "+e2 +" "+e3+" "+e4+"\n");
}
else
{
area.setText("Kein entsprechender Datensatz gefunden.");
break;
}
}
}
catch (Exception e) {area.setText("Fehler beim Zugriff auf Datenbank");}
}
</pre>
Comment