Bei Füllen eines decimal Feldes muß ich bei einem Wert mit Nachkommastellen das Komma in einen Punkt verwandeln, damit das Komma nicht irrtümlich als Trennzeichen verwendet wird. Wenn ich diesen Wert jetzt aber aus einer Tabelle lese und dann in eine andere schreiben will habe ich das gleiche Problem. Der wert wird mit Komma geliefert muß aber mit Punkt übergeben werden. Was läuft da schief ?
Announcement
Collapse
No announcement yet.
Numerische Felder in MS-SQL
Collapse
X
-
Hallo,
über welchen Weg erfolgt der Zugriff auf diese Datenbank? Wenn ich mir eine Tabelle über <i>SQL Query Analyzer</i> anschaue, wird dort der Punkt als Dezimaltrennzeichen verwendet. Wenn ich jedoch in Delphi über die <i>ADO Express</i>-Komponenten auf die Schnelle ein Programm zusammenbaue, verwendet Delphi als Voreinstellung die europäische Darstellung (Komma als Dezimaltrenner), die über die <i>Ländereinstellung</i> (Systemsteuerung) für diesen Rechner vorbelegt wurde. Auch das Datum wird automatisch in das bei uns gebräuchliche Format konvertiert
-
Hallo,
die Daten werde zuerst mittels Delphi und ADO zum SQL-Server transferiert.Die Umwandlung von Komma in Punkt ist da ja kein Problem.
Nun wollte ich aber in einer ASP-Anwendnung Daten von einer Tabelle in eine andere kopieren und bin bei diesem Problem aufgelaufen.<g>
Mir ist nicht klar warum zum einen die lokale Einstellung benutzt wird (beim Lesen) und im anderen Fall (beim Schreiben) nicht.
Und irgendwie denke ich, ich mache etwas falsch, denn das Problem müßte doch auch andere Entwickler stören
Comment
-
Hallo,
was bedeutet "<i>Nun wollte ich aber in einer ASP-Anwendnung Daten von einer Tabelle in eine andere kopieren</i>" im Detail? Wenn die Daten über SQL nur innerhalb der Datenbank umkopiert werden (ohne von der ASP selbst angefasst zur werden), dürfte das Problem nicht auftreten.
Wenn allerdings die ASP die Daten aus einer Tabelle einsammelt und erst im zweiten Schritt in die zweite einfügt, wird es darauf ankommen, wie die ASP vorgeht. Wenn alles über Stored Procedures bzw. parametisierte UPDATE-Anweisungen läuft, kann die ASP auf <b>Command</b>-Objektinstanzen mit entsprechend deklarierten <b>Parameter</b>-Objekten zurückgreifen, so dass die Datentypen korrekt behandelt werden können
Comment
-
Hallo,
als kompliziert würde ich das nicht beschreiben, sondern als Normalfall. Bei einer Webanwendung spielt ja auch Geschwindigkeit eine gewisse Rolle, daher würde ich den Insert über eine Stored Procedure in der SQL Server-Datenbank laufen lassen. Selbst dann, wenn diese SP von der ASP für jeden einzufügenden Datensatz aufgerufen werden muss, legen die Parameter (und die dann notwendigen Parameter-Objekte) die Datentypen exakt fest. Und wenn man dann einmal die unterschiedlichen Alternativen in Bezug auf die Performance vergleicht, ist die SP unschlagbar schnell. Man schlägt somit 2 Fliegen mit einer Klappe ;-
Comment
Comment