# Fehler in der HSQLDB



## Alex_winf01 (14. Nov 2007)

Folgender Code:


```
import java.sql.*;

import java.util.logging.*;



public class UseHSQLDB {

   static Logger log = Logger.getLogger("de.myname.UseHSQLDB");



   public static void main(String[] args)

      throws SQLException, ClassNotFoundException { // Doit better ...



   log.log(Level.INFO, "Starting to load JDBCDriver... ");

   Class.forName("org.hsqldb.jdbcDriver");

   log.log(Level.INFO, "JDBC Driver successfully loaded!");



   Connection con =

      DriverManager.getConnection( // tmp must exist. Right slash.

         "jdbc:hsqldb:C:tmp/artikel","sa","");

   		log.log(Level.INFO, "Connection established!");



   Statement stmt = con.createStatement();

   String sqlQuery = 

      "CREATE TABLE Artikel (cdNr INTEGER, cdArtist CHAR(20), cdTitle CHAR(20))";
    
   ResultSet rs = stmt.executeQuery(sqlQuery);
   rs = stmt.executeQuery(sqlQuery);



   sqlQuery = "INSERT INTO Artikel VALUES (1,'Groeni','Mensch')";

   rs = stmt.executeQuery(sqlQuery);

   sqlQuery = "INSERT INTO Artikel VALUES (2,'Sting','Fields of Gold')";

   rs = stmt.executeQuery(sqlQuery);

   sqlQuery = "INSERT INTO Artikel VALUES (3,'Bach','Pluratorium')";

   rs = stmt.executeQuery(sqlQuery);



   sqlQuery = "UPDATE Artikel SET cdTitle='W-Oratorium' WHERE cdNr=1";

   rs = stmt.executeQuery(sqlQuery);



   sqlQuery = "SELECT * FROM Artikel";

   rs = stmt.executeQuery(sqlQuery);

   System.out.println("\n\n\nArtikel- DB\n=============\n");

   int counter = 0;

   while (rs.next()) {

      System.out.println(counter++ +".Datensatz:");

      int cdNr = rs.getInt("cdNr");

      System.out.println("\t[cdNr ->" + cdNr + "]");

      String cdArtist = rs.getString("cdArtist");

      System.out.println("\t[cdArtist ->" + cdArtist + "]");

      String cdTitle = rs.getString("cdTitle");

      System.out.println("\t[cdTitle ->" + cdTitle + "]\n");

   }

   con.close();

   }
   }
```

verursacht folgende Fehlermeldung:



> Fehlermeldung:
> 
> --------------------Configuration: kjp - JDK version 1.5.0_02 <Default> - <Default>--------------------
> 14.11.2007 20:28:14 UseHSQLDB main
> ...



Bin ich blöd? Die Tabelle existiert definitiv nicht. mach ich nur SELECT * FROM Artikel, kann er die Tabelle nicht finden.


----------



## Guest (14. Nov 2007)

Update Statements (Create, Insert, Update, Delete): executeUpdate() verwenden.
Select Statements : executeQuery() verwenden.


----------



## The_S (15. Nov 2007)

Ich liebe Titel wie "Fehler in HSQLDB". Weil, sind ja immer die anderen Schuld, blos net die Fehler bei sich selbst suchen :roll: .


----------



## Alex_winf01 (15. Nov 2007)

@ Hobbit_Im_Blutrausch

so sollte der Titel nicht rüberkommen. In 99% der Fälle liegt der Fehler 90 cm vor dem Bildschirm oder zwischen meinen Ohren.

Beim nächsten Mal werde ich mir einen besseren Titel auswählen. Versprochen.


----------



## The_S (15. Nov 2007)

Ja, sry dass dus jetzt abbekommen hast, aber solche titel häufen sich irgendwie in letzter Zeit, un irgendwann musste es mal raus  .


----------



## Alex_winf01 (15. Nov 2007)

@ Gast

bei 
	
	
	
	





```
executeUpdate()
```
 meckert bereits der Compiler.

Hab meine Fehler selbst gefunden: Man sollte den selben Query auch nicht zweimal direkt hintereinander zur DB schicken. :roll:


----------



## The_S (15. Nov 2007)

ein UPDATE wird aber trotzdem mit stmt.execute ausgeführt und nicht mit executeQuery.


----------

