vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
Re: Probleme beim Update einer Tabelle in SQLDB 
Autor: Preisser
Datum: 29.11.11 11:07

Hallo,

das Problem hier ist ja, dass beim Umwandeln einer Gleitkommazahl wie 1.23 in einen String (zum Einfügen in den SQL-String) VB6 einfach die aktuellen Ländereinstellungen verwendet, und man wohl keine Möglichkeit hat, das direkt zu beeinflussen (und eben in einem SQL-String immer der Punkt als Trennzeichen verwendet werden muss). In .Net bräuchte man beispielsweise nur die InvariantCulture beim Konvertieren der Zahl in einen String zu verwenden; bei Vb6 geht das nicht.
Deswegen gibt ja z.B. die Umwandlung der Zahl 1.23 auf einem amerikanischen System "1.23" als String, auf einem deutschen jedoch "1,23" (also Komma statt Punkt).

Eine Möglichkeit, um solche Probleme grundsätzlich zu lösen (bei SQL) ist, die Daten nicht direkt ein den SQL-String einzufügen, sondern Parameter zu verwenden (was man sowieso grundsätzlich machen sollte, wenn man Werte für die Abfrage verwendet, die aus fremden Quellen stammen können). Hier ist ein Beispiel für VB6+Ado. Parameter bewirken, dass die Daten ohne Zwischenkonvertierung (in einen String und dann wieder zurück) direkt an die DB übergeben werden können (und bietet deshalb natürlich auch Schutz gegen SQL Injection).

Wenn man trotzdem die Zahl direkt in den SQL-String einfügen will, muss man wohl Replace verwenden, allerdings würde ich nicht einfach ein Komma ersetzen, da es ja in anderen Ländern passieren kann, dass dort andere Dezimaltrennzeichen verwendet werden. Man könnte beispielsweise vorher das Dezimaltrenzeichen dadurch ermitteln, dass man eine Zahl wie 1.2 in einen String umwandelt, und dann das Dezimaltrennzeichen in der Mitte nimmt (oder entsprechende APIs aufruft, um es zu erhalten).

Beitrag wurde zuletzt am 29.11.11 um 11:12:53 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Probleme beim Update einer Tabelle in SQLDB4.332I.V.28.11.11 10:30
Re: Probleme beim Update einer Tabelle in SQLDB3.493ModeratorDieter28.11.11 11:05
Re: Probleme beim Update einer Tabelle in SQLDB3.445I.V.28.11.11 11:15
Re: Probleme beim Update einer Tabelle in SQLDB3.472ModeratorDieter28.11.11 11:31
Re: Probleme beim Update einer Tabelle in SQLDB3.386I.V.28.11.11 13:18
Re: Probleme beim Update einer Tabelle in SQLDB3.457wb-soft28.11.11 11:32
Re: Probleme beim Update einer Tabelle in SQLDB3.376Franki29.11.11 02:33
Re: Probleme beim Update einer Tabelle in SQLDB3.433I.V.29.11.11 10:27
Re: Probleme beim Update einer Tabelle in SQLDB4.551Preisser29.11.11 11:07
Re: Probleme beim Update einer Tabelle in SQLDB3.509I.V.29.11.11 12:27

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel