DevTrain Startseite SharePoint Camp ? In 5 Tagen zum SharePoint Profi!  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

Forum: ASP Classic | Thema: International Applikation mit ASP und SQL Server ?? | Von: G. Guest ( 18.12.2001 14:42)

Ich habe ein Problem/Frage beim erstellen einer internationalen Applikation in ASP in Verbindung mit MS SQL Server.
Vielleicht habe ich ja das Glück und irgend jemand kennt sich mit dieser Problematik aus und hatte bereits das selbe Problem.

Mein WebServer hat folgende Konfiguration - Microsoft SQL Server Win2000 und IIS.

Auf diesem Server gibt es eine Datenbank mit einer Tabelle billvalues in die Währungswerte geschrieben werden sollen.
Die Währungswerte werden in die Spalte money_value geschrieben.

Ebenfalls auf diesem Server gibt es eine von mir in VB6.0 geschiebene ActiveX DLL Komponente die die sog. Geschäftslogik oder auch Zwischenschicht
bereitstellt und die Routinen enthält die in die Tabelle billvalues Währungswerte eintragen.
Eine öffentliche Routine/Methode der ActiveX Komponente ist die Routine InsertValue(200.75) die als Parameter den WÄhrungsbetrag übergeben
bekommt.
Diese führt eine einfache Insertanweisung aus und ist simple aufgebaut (es folgt ein abgespecktes Beispiel der Routine)

REM - in der folgenden funktion habe ich nur die wichtigen commands eingetragen es fehlen die verbindungsdaten da das ja funktioniert
REM - und nicht mein eigentliche Problem darstellt.

Sub InsertValue(money_value as variant)

conn.Execute "INSERT INTO BILLVALUES (money_value) VALUES(" & Str(money_value) & ")"

End Sub

Ich habe ein ASP Script geschrieben welches diese Komponente auf dem Server ansteuert und möchte Werte in die Tabelle billvalues mit
Hilfe dieser Routine eintragen.
Das funktioniert auch alles wunderbar. Jedoch ist es leider eine Anforderung das diese Werte
von amerikanischen Clients (Dezimaltrenner Währungswerte sind ein .) und von deutschen Clients im deutschen Format (Dezimaltrenner Währungswerte sind ein ,)
eingegeben werden sollen.

Also wenn ein amerikanischer Client mit us Gebietseinstellungen die ASP Seiten mittels Browser aufruft soll er in der Lage sein einen
Betrag von 200.75 mit dem ihm vertrauten Punkt als Dezimaltrenner einzugeben und ein deutscher Client sollte in der Lage sein
den gleichen Betrag in der ihm vertrauten Schreibweise 200,75 einzugeben.

Wenn auf dem Server das deutsche Gebietsschema eingestellt ist und ich übergebe von einem deutschen Client (mit korrekter deutscher LCID)
den Wert 200,75 wird Str(money_value) in 200.75 umgewandelt und das Insertcommand ist auch OK und arbeitet korrekt.

Jetzt möchte aber ein amerikanischer Client (ebenfalls mit korrekter amerikanischer LCID) 200.75 eingeben.
Da das deutsche Gebietsschema auf dem Server aktiviert ist wird Str(money_value) in 20075 umgewandelt
da ja ein Punkt im deutschen keine Kommastelle ist und das ist aber leider falsch da ja 200.75 eingegeben werden soll.

Wenn die Gebietseinstellung des Servers auf amerikanisch gewechselt wird ist das ganze genau umgekehrt.

Sehe ich das richtig, das die LCID oder setlocale lediglich für die Ausgabe bestimmt sind und für die Eingabe in eine Datenbank
mittels Replace gearbeitet werden muß ? Also ich könnte ja ohne Probleme mittels Replace 200.75 für amerikanisches Format in ein 200,75
umwandeln. Der würde sich dann so verhalten wie wenn ein Deutscher Client eine Eingabe vornimmt also korrekt.

Meine Frage ist ob das wirklich der Lösungsansatz ist oder ob ich da etwas grundlegendes übersehen habe oder keinen Zusammenhang sehe.
Die Replace Lösungen habe ich schon mehrfach gesehen aber ich habe da irgendwie kein gutes Gefühl dabei.

Also wer kann mir da weiterhelfen oder muß ich das wirklich so machen ?

Für jede Hilfe bin ich dankbar.

Michael R. Friebel












Betreff Von Datum
RE:International Applikation mit ASP und SQL Server ??
Hallo<br>ich gehe davon aus, dass du eindeutig identifizieren kannst, wer Ami ist und wer nicht! <br>Mit LCID hier umstellen, muss funktionieren.<br><br>Folgendes Script beantwortet vielleicht die Frage(n)....
Bernhard Elbl 21.12.2001 17:16

Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Building und Connecting Know-how

© Copyright 2003 ppedv AG