Seite 1 von 1

GELÖST SQL, Formatkonflikt bei Update auf decimal

Verfasst: Mo, 12.05.2014 03:31
von WSO
Guten Morgen Zusammen,
Ich schreibe per Makro in ein Tabellenfeld (decimal 10,2).
Die Variable im Makro mit dem neuen Wert (kommt aus einem Formularfeld) ist als DOUBLE definiert.
Der Inhalt ist ueberpruefbar korrekt.
Bei einen UPDATE mit einem nicht ganzzahligen Wert (und nur dann), bekomme ich einen SQL-Fehler wegen Formatkonflikt.

Das Datenbankfeld war zuvor falsch angelegt, als Decimal ohne Nachkommastellen.
Habe das korrigiert (ueber die GUI) auf 10.2
Hat nichts gebracht, SQL meckert weiter.
Habe darufhin testweise im Makro die Variable als "long" definiert, der SQL-Befehl lief durch, die Dezimalstellen aus dem Eingabefeld der Maske waren natuerlich weg, ist ja logisch.

Letzter Versuch war die Aenderung des Tabellenfeldes auf double.
Leider wieder der gleiche Fehler beim UPDATE.

An anderen Feldern aus den SQL-Statement kann es nicht liegen, denn wie gesagt, bei ganzzahligen Werten gibt es kein Problem.
Hat jemand eine Idee, was ich da noch machen kann? (ausser jetzt endlich ins Bett zu gehen und Morgen wieder daran zu gehen ...)
Gruss,
Wolfram

Re: SQL, Formatkonflikt bei Update auf decimal

Verfasst: Mo, 12.05.2014 07:46
von RobertG
Hallo Wolfram,

wenn Du etwas in ein Dezimalfeld rein schreibst, dann müssen die Nachkommastellen mit dem Punkt als Trenner angegeben werden.

Gruß

Robert

Re: SQL, Formatkonflikt bei Update auf decimal

Verfasst: Mo, 12.05.2014 10:01
von WSO
Moin Robert,
da waere ich nicht drauf gekommen ...
Das gilt dann sicher grundsaetzlich, also auch bei double, float, ... ?

Konkret bedeutet das doch jetzt:
- den Dezimalwert als String mit bearbeiten und so an SQL-Statement uebergeben

Frage: gibt es so was wie das "REPLACE" in VBA, oder muss ich mir das basteln?
Gruss,
Wolfram

Re: SQL, Formatkonflikt bei Update auf decimal

Verfasst: Mo, 12.05.2014 16:45
von RobertG
Hallo Wolfram,

so etwas wie REPLACE musst Du nachstellen. Angenommen der Wert ist in stDecimal ausgelesen worden:

Code: Alles auswählen

stDezimal = Join(Split(stDezimal,","),".")
Dann hast Du den Trenner als Punkt und kannst das Ganze als Dezimalzahl in SQL einfügen.

Gruß

Robert

Re: SQL, Formatkonflikt bei Update auf decimal

Verfasst: Mo, 12.05.2014 18:40
von WSO
ja, habe ich genau so gemacht, waren halt ne Menge module zu verbessern,
gruss
wolfram