by Guest » 08 Jan 2025, 09:07
Ich verwende UCanAccess, um Daten in eine Access-Datenbank mit den folgenden Spalten einzufügen oder zu aktualisieren
- d1 double
- d2 double
- d berechnet als IIf((IIf([d1] Is Null,0,[d1])=-999),Null,IIf([d2] Is Not Null,Round(([d1]+[d2])/2,1),[d1]))
wobei d ein berechnetes Feld für ist der Mittelwert von d1 und d2.
Beim Zugriff funktioniert alles einwandfrei. Aber wenn ich über UCanAccess einfüge oder aktualisiere, erhalte ich abgeschnittene Ergebnisse in Spalte d.
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.2, 2.4)");
//stmt.execute("UPDATE Tab SET d2 = 2.6;");
}
Die Werte sind korrekt geschrieben, aber Spalte d gibt 2 statt 2,3 an.
Irgendwelche Ideen, was hier falsch ist?
Ich verwende UCanAccess, um Daten in eine Access-Datenbank mit den folgenden Spalten einzufügen oder zu aktualisieren
[list]
[*]d1 double
[*]d2 double
[*]d berechnet als IIf((IIf([d1] Is Null,0,[d1])=-999),Null,IIf([d2] Is Not Null,Round(([d1]+[d2])/2,1),[d1]))
[/list]
wobei d ein berechnetes Feld für ist der Mittelwert von d1 und d2.
Beim Zugriff funktioniert alles einwandfrei. Aber wenn ich über UCanAccess einfüge oder aktualisiere, erhalte ich abgeschnittene Ergebnisse in Spalte d.
Hier ist mein Code:
[code]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.2, 2.4)");
//stmt.execute("UPDATE Tab SET d2 = 2.6;");
}
[/code]
Die Werte sind korrekt geschrieben, aber Spalte d gibt 2 statt 2,3 an.
Irgendwelche Ideen, was hier falsch ist?