Ich verwende UCanAccess, um Daten wie folgt in eine Access-Tabelle einzufügen Spalten:
- d1 double
- d2 double default null
d berechnet als IIf((If([d1] Is Null,0,[d1])=-999),Null,IIf([d2] Is Not Null,Round(([d1]+[d2])/2,1),[d1]))
In Access kann ich Null in d2 einfügen. Die Verwendung von UCanAccess zum Einfügen von Null führt zu folgendem Fehler:
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.x.x external routine invocation Ausnahme: null Wert nicht zulässig
at [email protected]/net.ucanaccess.jdbc.UcanaccessStatement.execute(UcanaccessStatement.java:159)
at javaapplication23.JavaApplication23.main(JavaApplication23.java:35)
Hier ist mein Code:
Code: Select all
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
con = DriverManager.getConnection("jdbc:ucanaccess://" + database+ ";singleconnection=true", "", "");
try(Statement stmt = con.createStatement();){
stmt.execute("INSERT INTO Tab (d1, d2) VALUES (2.1, null);");
}
Die Verwendung der Nz()-Funktion anstelle von IS NULL wie in dieser Frage funktioniert nicht, da Nz in berechneten Feldern nicht zulässig ist.
Irgendwelche Ideen, was falsch ist oder wie man es beheben kann?
Mobile version