| Autor |
Beitrag |
Peter2002
      
Beiträge: 103
Win XP, Win 7
Delphi 2007 / XE3
|
Verfasst: Mo 20.01.03 16:07
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
      
Beiträge: 992
Erhaltene Danke: 1
WIN 7
D7 Prof., C#, RAD XE Prof.
|
Verfasst: 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?
_________________ Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
|
|
Peter2002 
      
Beiträge: 103
Win XP, Win 7
Delphi 2007 / XE3
|
Verfasst: 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
      
Beiträge: 992
Erhaltene Danke: 1
WIN 7
D7 Prof., C#, RAD XE Prof.
|
Verfasst: 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.
_________________ Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
|
|
Peter2002 
      
Beiträge: 103
Win XP, Win 7
Delphi 2007 / XE3
|
Verfasst: 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
      
Beiträge: 992
Erhaltene Danke: 1
WIN 7
D7 Prof., C#, RAD XE Prof.
|
Verfasst: 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?
_________________ Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
|
|
Peter2002 
      
Beiträge: 103
Win XP, Win 7
Delphi 2007 / XE3
|
Verfasst: Di 21.01.03 12:26
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: 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
      
Beiträge: 992
Erhaltene Danke: 1
WIN 7
D7 Prof., C#, RAD XE Prof.
|
Verfasst: 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.
_________________ Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
|
|
Peter2002 
      
Beiträge: 103
Win XP, Win 7
Delphi 2007 / XE3
|
Verfasst: 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
      
Beiträge: 992
Erhaltene Danke: 1
WIN 7
D7 Prof., C#, RAD XE Prof.
|
Verfasst: 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.
_________________ Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
|
|
Peter2002 
      
Beiträge: 103
Win XP, Win 7
Delphi 2007 / XE3
|
Verfasst: Di 21.01.03 22:41
auch bei der Konfiguration des Providers bin ich mir sicher.
*verzweifel*
|
|
Peter2002 
      
Beiträge: 103
Win XP, Win 7
Delphi 2007 / XE3
|
Verfasst: 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
|
|