Hallo Leute,
ich steh/sitze jetzt seit 3 Tagen vor dem Problem "Incorrect date value...."
DB: mySQL
Betroffene Feld:
Name: ERLEDIGT_AM
Typ: Date
NULL: ja
Standard: NULL
Um die Daten in die SQL DB zu schreiben habe ich folgenden SQLSTR:
Der Import wird dann wie folgt ausgeführt:
Soweit alles gut, ABER wenn das Feld "getF12_Erledigt_am" keinen Wert enthält, schmiert mir dbexecute ab.
Wie kann ich aber trotzdem einen Datensatz in die DB schreiben, wenn das Feld "getF12..." nicht belegt/leer/null/ ist? Wenn ich den SQL Befehl über phpMyAdmin mache funktioniert er.
Gruß ZHermann
ich steh/sitze jetzt seit 3 Tagen vor dem Problem "Incorrect date value...."
DB: mySQL
Betroffene Feld:
Name: ERLEDIGT_AM
Typ: Date
NULL: ja
Standard: NULL
Um die Daten in die SQL DB zu schreiben habe ich folgenden SQLSTR:
Code:
static String strSQL_saveSAPImport =
"INSERT INTO SAPIMPORT ("
+ "MELDUNG,"
+ "MASSNAHMENCODE,"
+ "MASS_CODE_TXT,"
+ "CODIERUNG,"
+ "CODIER_CODE_TXT,"
+ "TECHN_PLATZ,"
+ "AUSFUEHRENDER,"
+ "ANGELEGT_VON,"
+ "ANGELEGT_AM,"
+ "ANGELEGT_UM,"
+ "ERLEDIGT_VON,"
+ "ERLEDIGT_AM,"
+ "ERLEDG_ZEIT,"
+ "BEZUGSZEIT,"
+ "GEAENDERT_AM,"
+ "GEAENDERT_VON,"
+ "GEAENDERT_UM,"
+ "BESCHREIBUNG,"
+ "EQUIPMENT,IMPORTID)"
+"VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
Der Import wird dann wie folgt ausgeführt:
Code:
private void impData() {
String name = this.getImportName(); // Name für das Speichern des Import erfragen (DIALOG)
if (!name.equals(null)) {
// Import speichern
String[] sqlData = new String[1];
sqlData[0] = name;
this.appDB.updateSQL(sqlData, SQLCommand.strSQL_saveImport);
sqlData = null;
sqlData = new String[20];
for (ImportRecord item : this.importTable.getItems()) {
sqlData[0] = item.getF1_Meldung().toString();
sqlData[1] = item.getF2_Massnahmencode().toString();
sqlData[2] = item.getF3_Mass_Code_Txt().toString();
sqlData[3] = item.getF4_Codierung().toString();
sqlData[4] = item.getF5_Codier_Code_Txt().toString();
sqlData[5] = item.getF6_Tech_Platz().toString();
sqlData[6] = item.getF7_Ausfuehrender().toString();
sqlData[7] = item.getF8_Angelegt_von().toString();
sqlData[8] = item.getF9_Angelegt_am().toString();
sqlData[9] = item.getF10_Angelegt_um().toString();
sqlData[10] = item.getF11_Erledigt_von().toString();
sqlData[11] = item.getF12_Erledigt_am().toString();
sqlData[12] = item.getF13_Erledg_Zeit().toString();
sqlData[13] = item.getF14_Bezugszeit().toString();
sqlData[14] = item.getF15_Geaendert_aon().toString();
sqlData[15] = item.getF16_Geaendert_von().toString();
sqlData[16] = item.getF17_Geaendert_um().toString();
sqlData[17] = item.getF18_Beschreibung().toString();
sqlData[18] = item.getF19_Equipment().toString();
sqlData[19] = "35";
this.updateSQL(sqlData, SQLCommand.strSQL_saveSAPImport);
}
}
}
public void updateSQL(String[] sqlData, SQLCommand sqlCommand) {
try {
String command = null;
switch(sqlCommand) {
case strSQL_saveSAPImport:
command = DBInterface.strSQL_saveSAPImport;
break;
case strSQL_saveImport:
command = DBInterface.strSQL_saveImport;
break;
case strSQL_saveReport:
command = DBInterface.strSQL_saveImport;
break;
default:
break;
}
if (!command.equals(null)) {
PreparedStatement dbexecute = (PreparedStatement) this.dbConnect.prepareStatement(command);
for (int i = 0; i < sqlData.length; i++) {
dbexecute.setString(i+1, sqlData[i]);
}
dbexecute.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
Soweit alles gut, ABER wenn das Feld "getF12_Erledigt_am" keinen Wert enthält, schmiert mir dbexecute ab.
Wie kann ich aber trotzdem einen Datensatz in die DB schreiben, wenn das Feld "getF12..." nicht belegt/leer/null/ ist? Wenn ich den SQL Befehl über phpMyAdmin mache funktioniert er.
Gruß ZHermann