Hallo,
so langsam verzweifle ich. Ich will ein Update auf eine Access Datenbank ausführen, so langsam glaube ich, das etwas irgendwo zwischen meinem Programm und der Datenbank nicht stimmt. Weil wenn ich das Statement so 1:1 in Access ausführe läuft das. Ich bekomm immer IMMMER den Parameterfehler. Die Zeile über dem Fehler ist die welche mir das System.out.println() ausgibt.
Wie gesagt wenn ich das in Access ausführe -> wunderbar macht er ohne zu meckern. Die Select's funktionieren auch ohne Probleme. Weiß irgendjemand woran das liegt?
Ich glaub langsam das irgendwas mit JDBC:ODBC nicht stimmt und er was falsch umwandelt
.
Und kommt mir jetzt nicht mit Prepared Statements da bekomm ich gleich 3 Parameterfehler.
Ich habe auch schon versucht die Tabellenfelder mit "[]" zu umklammern -> Selber Fehler. Printout:
update tbl_Laser SET [isAlive] = 'true' WHERE [Programmname] ='6AV35031DB10';
update tbl_Laser SET isAlive = 'true' WHERE Programmname ='6AV35031DB10';
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(Unknown Source)
at DataBaseLaser.updateisAlive(DataBaseLaser.java:105)
at Main.main(Main.java:35)
Folgender simpler Code:
Weitere Code fals ihr den braucht:
so langsam verzweifle ich. Ich will ein Update auf eine Access Datenbank ausführen, so langsam glaube ich, das etwas irgendwo zwischen meinem Programm und der Datenbank nicht stimmt. Weil wenn ich das Statement so 1:1 in Access ausführe läuft das. Ich bekomm immer IMMMER den Parameterfehler. Die Zeile über dem Fehler ist die welche mir das System.out.println() ausgibt.
Wie gesagt wenn ich das in Access ausführe -> wunderbar macht er ohne zu meckern. Die Select's funktionieren auch ohne Probleme. Weiß irgendjemand woran das liegt?
Ich glaub langsam das irgendwas mit JDBC:ODBC nicht stimmt und er was falsch umwandelt
Und kommt mir jetzt nicht mit Prepared Statements da bekomm ich gleich 3 Parameterfehler.
Ich habe auch schon versucht die Tabellenfelder mit "[]" zu umklammern -> Selber Fehler. Printout:
update tbl_Laser SET [isAlive] = 'true' WHERE [Programmname] ='6AV35031DB10';
update tbl_Laser SET isAlive = 'true' WHERE Programmname ='6AV35031DB10';
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(Unknown Source)
at DataBaseLaser.updateisAlive(DataBaseLaser.java:105)
at Main.main(Main.java:35)
Folgender simpler Code:
Java:
public void updateisAlive(DataHolder currentHolder) throws SQLException{
Statement st = myConn.createStatement();
String updateSql = "update tbl_Laser " +
"SET isAlive = 'true' " +
"WHERE Programmname ='"+currentHolder.getsMatnr()+"';";
System.out.println(updateSql);
int updateSuccess = st.executeUpdate(updateSql);
}
Weitere Code fals ihr den braucht:
Java:
private DataBaseLaser() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String sUsr = "";
String sPw = "";
String sDbUrl = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="
+ idDatabasepath + ";READONLY=false}";
try {
myConn = DriverManager.getConnection(sDbUrl, sUsr, sPw);
connAbfragen=false;
// System.out.println("Verbindung hergestellt: " + myConn);
} catch (SQLException e) {
e.printStackTrace();
connAbfragen = true;
}
}