Hallo liebe Java-Community,
ich habe schon wieder ein Problem!
)
Seit 2 Std. versuche ich es verzweifelt zu lösen, leider ohne Erfolg.
In meiner Anwendung finden laufend DB-Zugriffe statt. Input ist eine Access-DB.
Hierzu habe ich diese Klasse geschrieben, welche eine DB Verbindung herstellt.
Soweit so gut! Zusätzlich schreibe ich Methoden mit benötigten Statements.
In dieser Methode prüfe ich ob eine Dokumentennummer existiert. Aber! Ich kriege immer eine Fehlermeldung in der Zeile: ant = rs.getString(1);
Es sind ca. 30 Methoden dieser Art in meinem Prog. im Einsatz, es läuft alles einwandfrei bis auf diese.
Mit dem Statement ist auch alles ok, den habe ich an einer anderen Stelle ausprobiert. Die Methode wird in einem ActionListener aufgerufen, nach einem Button KlicK.
Hier die Fehlermeldung:
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
at Oberflaeche.artikel_existent(Oberflaeche.java:580)
at Oberflaeche$4.actionPerformed(Oberflaeche.java:886)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Danke im Voraus!!
yerl
ich habe schon wieder ein Problem!
Seit 2 Std. versuche ich es verzweifelt zu lösen, leider ohne Erfolg.
In meiner Anwendung finden laufend DB-Zugriffe statt. Input ist eine Access-DB.
Hierzu habe ich diese Klasse geschrieben, welche eine DB Verbindung herstellt.
Java:
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public class DB_input
{
public String db_pfad;
public String db_pfad_holen()
{
Home_URL url = new Home_URL();
db_pfad = url.url_ursprung() + "programmordner/input_db.mdb";
return db_pfad;
}
public Connection dbzugriff() throws ClassNotFoundException, SQLException, IOException
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (ClassNotFoundException e)
{
JOptionPane.showMessageDialog(null, "Treiber-Klasse " + e + " konnte nicht geladen werden!", "DB-Zugriffsfehler",JOptionPane.OK_OPTION);
System.exit(0);
}
try
{
Connection con = DriverManager.getConnection("jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" + db_pfad_holen());
return con;
}
catch (SQLException e)
{
JOptionPane.showMessageDialog(null, "Datenbank Verbindungsfehler! " + e, "DB-Zugriffsfehler", JOptionPane.OK_OPTION);
System.exit(0);
}
return null;
}
}
Soweit so gut! Zusätzlich schreibe ich Methoden mit benötigten Statements.
Java:
public boolean artikel_existent() throws Exception
{
DB_input input = new DB_input();
Connection con = input.dbzugriff();
Statement stmt = con.createStatement();
ResultSet rs = null;
String ant = "";
rs = stmt.executeQuery("SELECT input_db.Dokumentnummer FROM input_db WHERE (((input_db.Artikelnummer)= '"+ tf_artikelnummer.getText() +"') AND ((input_db.Station)= '"+ stationsinfo_array[0]+"'));"); //Alle QP-namen lesen die zur artikelnummer gehören
while(rs.next());
{
ant = rs.getString(1); //Hier tritt der Fehler auf!!!!!!!
if(!ant.equals(""))
return false;
}
rs.close();
con.close();
return true;
}
In dieser Methode prüfe ich ob eine Dokumentennummer existiert. Aber! Ich kriege immer eine Fehlermeldung in der Zeile: ant = rs.getString(1);
Es sind ca. 30 Methoden dieser Art in meinem Prog. im Einsatz, es läuft alles einwandfrei bis auf diese.
Mit dem Statement ist auch alles ok, den habe ich an einer anderen Stelle ausprobiert. Die Methode wird in einem ActionListener aufgerufen, nach einem Button KlicK.
Hier die Fehlermeldung:
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
at Oberflaeche.artikel_existent(Oberflaeche.java:580)
at Oberflaeche$4.actionPerformed(Oberflaeche.java:886)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Danke im Voraus!!
yerl