Dezimaltrennzeichen
-
Huhu zusammen....
sql = "UPDATE t1 SET floatvalue = '10.500000'"
führt dazu, dass der ODBC Treiber für MS ACCESS 10500000 und nicht 10,50 in die Datenbank einträgt.
Ich habe gelesen, dass man durch Einstellen in der Systemsteuerung das dezimaltrennzeichen ändern kann, was m.E. aber systemweite Auswirkungen hätte, was für meine Anwendung unzulässig ist.Wie kann ich also, den Treiber konfigurieren? oder gibt es SQL-Befehle, wo ich diese Einstellung mit ändern könnte?
Arghhh... und die "Replace" Funktion läuft unter ACCESS (ODBC) auch nicht? das kann doch nicht sein
Hilfe !
-
Und wenn Du die Hochkommas weglässt? Die braucht man bei Zahlenwerten nicht.
Mit parametrisierten Statements lässt sich unabhängig von den Spracheinstellungen von DB und OS arbeiten.
-
Hallo,
welche Kultur verwendet er dann als Vorgabe ? Invariant ?
Thx
-
yeah, ohne hochkommas klappt es tatsächlich! mysteriös...
die anderen fragen/aussagen sagen mir leider nix.
was sind parametrisierte statements?
und
was bedeuten "Kulturen" und invariant?
Danke schon mal
-
Smeagol schrieb:
yeah, ohne hochkommas klappt es tatsächlich! mysteriös...
Er behandelt das als String und da der Zieldatentyp eine Zahl ist muss er sie in eine solche umwandeln. Da in der deutschen Kultur der Dezimaltrenner ein Komma und der Tausendertrenner ein Punkt ist ignoriert er den Punkt.
Smeagol schrieb:
was sind parametrisierte statements?
Im SQL-String werden Platzhalter eingetragen und deren Werte extra typsicher übergeben. Hängt von Deinem Framewort ab ob dies unterstrützt wird.
Smeagol schrieb:
was bedeuten "Kulturen" und invariant?
Eine invariante Kultur ist nicht einem spezifischen Kulturkreis zugeordnet und dient dem generischen Übergeben/Behandeln von Werten. Z.Z. ist das US-EN. In Deinem SQL-String verwendest Du eine invariante Kultur, das System ist aber auf die deutsche eingestellt.[/quote]