Java ACESS problem

Ich hab ein Problem mit einem Java-Programm:
Ich soll mit ODBC auf eine MS-Acessdatenbank zugreifen und etwas in eine Tabelle einfügen. Das funktioniert aber nicht :frowning:
Daten auslesen funktioniert ohne Probleme, jedoch sobald etwas geschrieben werden soll kommt"No ResultSet was produced" als fehlermeldung.
als quellcode gibts:

Connection con = DriverManager.getConnection(„jdbc:odbc:acc“ ,"","");
Statement sta = con.createStatement();
ResultSet rs = sta.executeQuery(„insert int T1 values (5,1995,‚Datum‘)“)

wobei 5 für die ID steht
Ich wäre echt froh wenn mir jemand weiterhelfen könnte.
Liebe Grüße Jquesty

http://www.coderanch.com/t/301891/JDBC/java/No-Resul…

Gruß,
piccarlit

Hi,

probier es mal mit

sta.execute(„insert int T1 values (5,1995,‚Datum‘)“)

oder

sta.executeUpdate(„insert int T1 values (5,1995,‚Datum‘)“)

executeQuery führt typischerweise SELECT statements aus.

am besten mal die Spezifikation durchschauen http://download.oracle.com/javase/1.4.2/docs/api/jav…

Viele Grüße und viel Spaß damit,
Michael

Hallo Jquesty,
es tut mir leid, da kann ich Dir grad nicht weiterhelfen!
Ich wünsch Dir viel Erfolg bei der Fehlersuche,

Johanna

Hallo,

Die Klasse Statement kennt mehrere Methoden, um
einen SQL-Befehl auszuführen:

  • executeQuery für Anfragen, also alles was mit „SELECT …“ anfängt,
  • executeUpdate, für solche SQL-Befehle, die Daten verändern (insert, update, delete) und
  • execute, die funktioniert für alle SQL-Befehle und liefert true, falls Dein SQL eine Query war und false für alle anderen SQL-Befehle

Da Du ein INSERT abschicken möchtest, fügst Du eine neue Zeile ein und produzierst kein ResultSet. D.h. Du kannst entweder executeUpdate verwenden. Dann erhältst Du als Rückgabewert die Anzahl der eingefügten Zeilen (in diesem Fall 1). Oder Du benutzt execute. Das liefert als Rückgabewert false (keine Anfrage). Die Zahl der geänderten Zeilen kann man sich nach dem execute mit getUpdateCount holen. Falls der SQL-Code ein SELECT-Statement war, kann man sich mit getResultSet nach dem execute den ResultSet besorgen.

Hi Jquesty,

du darfst kein „executeQuery“ absetzen, sondern den Befehl „executeUpdate“!

Also in deinem Fall …
ResultSet rs = sta.executeUpdate(„insert into T1 values
(5,1995,‚Datum‘)“)

Gruß
Marco

Hallo Jquesty !

Habe leider mit Java keine Erfahrung.
Aber ich denke , da wird sich schon jemmand finden.

Gruß
Christof