![]() |
Dezimal in Paradox
Mache das mit DBGrid und nem Query. Immer wenn die eine Zahl in die Paradox-DB eingefügt werden soll, welche Stellen hinterm Komma hat, kommt bei mir
"Keine Übereinstimmung der Typen im Ausdruck" Das sagt MIR leider garnix... Hab die DB mit Access erstellt und das betrffende Feld mit Dezimal "formatiert" undhabe dann die Datenbank als Paradox7-8 exportiert. Wenn ich die Datenbank wieder importiere steht da dann anstatt dezimal double... :gruebel: Wat is da los? |
Re: Dezimal in Paradox
Hallo mercanery,
tritt der Fehler beim Aufruf von ExecSQL auf? Wie sieht dein SQL Statement aus, das diesen Fehler erzeugt? Falls du den Typ des entsprechenden Paradoxfeldes nicht sehen kannst (z.B. über DB Oberfläche oder den DB Explorer von Delphi), lege doch einmal ein TTable auf dein Formular, verbinde es mit der Paradoxtabelle und mache einen Rechtsklick auf das Objekt,um alle Felder zu deiner Anwendung hinzuzufügen. Dann wähle das entsprechende Feld aus und schaue im OI nach, welchen Typ es hat. |
Re: Dezimal in Paradox
Wenn ich das über den Monitor per Hand eingebe, dann wird das korrekt übernommen... :gruebel:
btw: laut Monitor ist das ding vom Typ "number" mit der physikalischen Länge von "8" und die zu importierende Nummer ist immer 4-stellig (eine Variable, die ber
Delphi-Quellcode:
in ein Edit-Feld eingefügt wurde)
STR()
PS: hier noch das SQL-Statement im zusammnehang (habe das schwer im Verdacht;)):
Delphi-Quellcode:
if Ed_Fechter_1.text=''
then else begin sql.clear; sql.add('INSERT INTO fechter (name,index_1,index_2) VALUES ('+QuotedStr(Ed_Fechter_1.text)+','+QuotedStr(Ed_Index_1_1.text)+','+QuotedStr(Ed_Index_2_1.text)+');'); execsql; end; |
Re: Dezimal in Paradox
noch was:
Wenn ich das ganze mit dBase mache ignoriert er die Kommata komplett...(sprich: 1.000 => 1000 und 0.500 => 500 und 0.666 :twisted: => 666) |
Re: Dezimal in Paradox
nach einigem hin-und-her-geteste:
Werte werden in dBase ausgegeben, als gäbe es kein Komma ganze zahlen gehen. Zahlen, die Delphi mir gekürzt hat (0.837) gehen auch Zahlen, die einen "sinnvollen" Bruch darstellen können (0.5 bzw. 1/2 | 0.333 bzw. 1/3 | 0.666 bzw. 2/3, usw.) geben den Fehler "Keine Übereinstimmung der Typen im Ausdruck" |
Re: Dezimal in Paradox
NUMBER( 8 ) ist auch eine Zahl ohne Nachkommastellen in dBase. Um Nachkommastellen zuzulassen bedarf es der Definition der Anzahl der Nachkommastellen. Beispiel
SQL-Code:
NUMBER(8,3) -- dBase: Zahlen mit drei Nachkommastellen
NUMBER(10) -- Paradox: laut Hilfe -10^307 - 10^308 als Double mit 15 signifikanten Stellen Am besten legst du deine Tabelle mit der Datenbankoberfläche an, dann siehst du auch gleich bei der Anlage die Unterschiede. Grüße Mikhal |
Re: Dezimal in Paradox
die gibbet bei mir irgendwie net...also die Datenbankoberfläche...die sollte doch unter tools sein, oder?
SON SCHEISS!!! kann mir vielleicht jemand seine Datenbankoberfläche per Mail schicken? (nat. nur sofern das legal und möglich ist...!) |
Re: Dezimal in Paradox
so gehts zumindest mit dBase:
Delphi-Quellcode:
sql.add('INSERT INTO fechter (name,index_1,index_2) VALUES ('+QuotedStr(Ed_Fechter_8.text)+','+Ed_Index_1_8.text+','+QuotedStr(Ed_Index_2_8.text)+');');
|
Re: Dezimal in Paradox
Hallo mercanery,
wenn index1 und index2 keine Stringfelder sind, darfst du auch nicht mit QuotedStr arbeiten. Besser gesagt du solltest es nicht tun, da du sonst darauf angewiesen bist, wie Paradox Strings in Real umwandelt. Je nach Einstellungen in der BDE könnte dein Problem dann auch sein, dass das Komma als Tausenderseparator und der Punkt als Dezimalpunkt interpretiert würde, was für dich dann so aussieht, als würde er das Komma ignorieren. Also lass einfach das QuotedStr bei den Zahlenfeldern weg, dann sollte es funktionieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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 by Thomas Breitkreuz