Entwickler-Ecke
Datenbanken - Bug in ADO?
Peter2002 - Mo 20.01.03 16:07
Titel: Bug in ADO?
Hallo erstmal,
ich greife über ADO auf eine Datei der AS/400 zu.
Dort sind Felder mit 5 und mehr Nachkommastellen. Das DBGrid zeigt mir aber immer nur 4 Nachkommastellen, die mit dem Wert in der Datei nicht viel gemeinsam haben. Es wird nicht nur einfach abgeschnitten, sondern auch zwischen drin was weggelassen.
Beispiel:
Feld1 = 1,12345
Feld2 = 1,123456
Feld3 = 1,1234567
angezeigt bekomme ich:
Feld1 = 1,1234
Feld2 = 1,1235
Feld3 = 1,1235
Hatte irgendwer schonmal dieses Problem? Wie wurde es gelöst?
smiegel - Mo 20.01.03 20:29
Hallo,
über welchen Mechanismus greifst Du auf die AS/400 zu? ODBC oder direkt? SQL?
Wie werden die entsprechenden Daten gelesen? Als String oder als Fließkomma?
Peter2002 - Mo 20.01.03 23:29
Die Daten werden per SQL (ADOQuery) gelesen. Als was wird DBGrid die Daten darstellen? String?
Wenn ich die Daten aber AsFloat in irgendwelche Variablen stecke, passiert das selbe.
smiegel - Mo 20.01.03 23:43
Hallo,
ich würde jetzt mal auf ein Darstellungsproblem der DBGrid-Komponente tippen.
Mir ist dieses Verhalten noch nicht aufgefallen. Alle Daten, die ich bisher auf der AS/400 abgeholt habe, haben auch gestimmt. Da ich kein DBGrid benutze, sondern die Daten selber aus der Query auslese, tippe ich mal auf das Grid.
Peter2002 - Di 21.01.03 09:57
ich hab jetzt mal den Query selber ausgelesen... es passiert das gleiche. Egal ob AsFloat, AsString, Text. Es wird immer der falsche wert angezeigt.
...Das Grid ist es wohl nicht.
Hast du ne andere Idee?
smiegel - Di 21.01.03 10:32
Hallo,
leider nicht. Wenn ich mir die Zahlen so anschaue, werden Sie (ab-)gerundet auf 4 Nachkommastellen.
Wie wird die Verbindung zur AS/400-DB aufgebaut? Über Client-Access-ODBC oder anders?
Peter2002 - Di 21.01.03 12:26
Über ADOConnection
Klabautermann - Di 21.01.03 13:00
Hallo,
| Peter2002 hat folgendes geschrieben: |
| Über ADOConnection |
ich denkle Smigel interessiert sich dafür, wie der Connection String aussieht.
Gruß
Klabautermann
smiegel - Di 21.01.03 16:29
Hallo,
weniger wie der Connction-String aussieht. Der wird schon stimmen, denn sonst würde er ja keine Verbindung zur AS/400 erhalten. Das er über eine ADOConmnection auf die DB zugreift war mir klar, da er das in der Überschrift und im 1. Posting ja geschrieben hat.
Es gibt verschiedene Möglichkeiten auf AS/400 Dateien zuzugreifen:
Ich greife über eine ODBC-Verbindung auf die Daten zu. Der ODBC-Treiber wird von Client-Access (Zugangssoftware für AS/400 von IBM) mitgeliefert.
Eventuell wäre es interessant, das SQL-Statement zu sehen.
Peter2002 - Di 21.01.03 21:36
ich glaube das SQL-Statement ist nicht besonders aufschlussreich.
Das passiert sogar bei einem "billig-Select" (select * from Datei)
Und, dass die Connection stimmt, da bin ich mir 100% sicher. Aus allen anderen Feldern bekomme ich ja die korrekten Werte. Außerdem würde ich ja sonst erst gar keine Verbindung bekommen.
...Für mich sieht das nicht nach ODBC aus. Wenns CA istalliert ist, dann kann man, wenn man den ConnectionString aufbaut "IBM AS/400 - Provider" oder so ähnilch auswählen. von ODBC steht da zumindest mal nix.
smiegel - Di 21.01.03 22:10
Hallo,
leider kann ich da auch nicht mehr weiterhelfen. Ich würde noch auf einen Konfigurationsfehler des "IBM AS/400 - Provider" tippen.
Peter2002 - Di 21.01.03 22:41
auch bei der Konfiguration des Providers bin ich mir sicher.
*verzweifel*
Peter2002 - Mi 22.01.03 12:08
EnableBCD ist die Lösung!
Steht das auf True, wie immer auf 4 Nachkommastellen gerundet. bei false nicht!
Trotzdem nochmals danke
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!