![]() |
Datenbank: Access (.mdb) • Version: ? • Zugriff über: Delphi TADO
Punkt in String wird in Komma verwandelt
Hallo zusammen,
ich hab bei Google und hier gesucht und nichts gefunden, also wenn es das Thema schon irgendwo gibt tut es mir leid... Ich habe folgendes Problem: In einer Adress-Datenbank sollen die Geokoordinaten der jeweiligen Adressen abgespeichert werden. Die Geodaten werden über eine Google API ermittelt und in zwei String Variablen gespeichert. Zu diesem Zeitpunkt haben die Variablen folgendes Format: 0.0000 (mit Punkt als Trennzeichen!) Nun will ich die Werte in die entsprechende Datenbankzeile eintragen:
Code:
Das ist ja eigentlich absoluter Standard und funktioniert im Prinzip auch, allerdings mit einem kleinen Haken: In der Datenbank sind alle Werte plötzlich mit Komma als Trennzeichen gespeichert!
ADOConnection1.Execute('UPDATE tbl SET lng='+longitude+', lat='+latitude+' WHERE id='+ADODataSet1.FieldByName('id').AsString);
Ursprünglich waren die DB-Felder vom Typ Gleitkommazahl, ich habe dann versucht das Problem zu lösen, indem ich die Felder als Typ WideString festgegelegt habe. Ich meine, es kann doch nichts schief gehen, wenn man einen String in ein String-Feld eintragen will, oder? Fazit: Die Punkte werden immer noch in Kommas verwandelt. Ich persönlich bin mit meinem Latein am Ende und hoffe sehr, dass mir hier jemand weiterhelfen kann ;) |
AW: Punkt in String wird in Komma verwandelt
Für Floatoperationen verwendet Delphi normalerweise das Char DecimalSeparator. Standardgemäß ist ',' eingestellt. Probier' mal DecimalSeparator:='.';
|
AW: Punkt in String wird in Komma verwandelt
Danke für die Antwort ;)
Ich habe es mit
Code:
und auch mit
DecimalSeparator := '.';
Code:
probiert, beides ergab keinerlei Änderung.
FormatSettings.DecimalSeparator := '.';
Der Witz ist ja, dass es in dem ganzen Programm eigentlich überhaupt keine Floatoperationen gibt. Google Geocoding wird über TIdHTTP.Get aufgerufen, wodurch die Daten gleich als Strings zurückkommen und so werden sie dann auch direkt in die Datenbank eingetragen. Eigentlich gibt es absolut keinen logischen Grund, warum er üerhaupt auf sowas wie DecimalSeparator achten sollte... |
AW: Punkt in String wird in Komma verwandelt
In deinem UPDATE-Text trägst du aber alles ohne ' " oder ´ ein, weswegen es von der DB als Zahlen interpretiert wird ... indirekt wandelst du es also um.
Vielleicht solltest du dich auch mal mit Prepared-Statements auseinandersetzen, anstatt auf solche deine Datenbankanfragen nur als String zusammenzusetzen. [edit] aka parametrisierte Abfrage :) |
AW: Punkt in String wird in Komma verwandelt
Verwende eine parametrisierte Abfrage
|
AW: Punkt in String wird in Komma verwandelt
Hi,
ich vermute mal, du benutzt persistente Felder. Hast du auch das Feld in der AdoQuery neu angelegt? Möglicherweise hat dieses noch den Typ Float und funkt dir dann dazwischen. Frank |
AW: Punkt in String wird in Komma verwandelt
Wie himitsu gemeint hat, es hat an den Hochkommas gelegen.
Ich bedanke mich bei allen für die Hilfe! ;) |
AW: Punkt in String wird in Komma verwandelt
Zitat:
(siehe auch #4) Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz