-
Dezimalfehler können bei der Umwandlung als Option automatisch behoben werden.
Aber das Problem ist ggf. ein anderes:
Felder, die nicht angesprochen bzw. verwendet werden, sind im RPG/LE nicht definiert.
Beim WRITE, also hinzufügen von Daten erlaubt die DB aber keine ungültigen Informationen.
Hierzu muss man nochmal auf die Technik von RPG eingehen.
Eine Datei wird mit einem RPG-internen Puffer verwaltet.
Beim Lesen werden die Felder aus dem Puffer gefüllt, beim Schreiben werden die Felder in den Puffer übertragen.
Felder die also nicht referiert werden können somit auch nicht in den Puffer übertragen werden und sind deshalb vom Inhalt undefiniert.
Je nach PTF kann es natürlich nun zu Abweichungen kommen.
Bei einer DDS-beschriebenen Datei waren unerlaubte Daten möglich.
Dieses Problem ist wohl mit dem neuen Stand endgültig behoben.
Siehe hierzu auch Hinweise von Birgitta:
Aus Performancegründen erfolgt eine Validierung der Daten beim WRITE, so dass beim READ keine Prüfung mehr erfolgen muss.
Dies galt bisher für SQL-Tabellen, nun wohl auch für DDS-Dateien.
Lösung:
Definiere eine DS, die alle Felder des Formates enthält:
D DateiDS E DS
Die Felder werden automatisch korrekt initialisiert.
-
ist auch die Datenbank auf beiden Systemen ident,
oder stimmt vielleicht die Datei, in welche geschrieben wird,
nicht überein.
-
@rr2001
Das würde bei DDS nur mit LVLCHK(*NO) funktionieren.
-
Die DB ist auf beiden Rechnern gleich.
Aber dies spielt m.E. nur eine untergeordnete Rolle, weil ich ja auf beiden Systemen das Programm vor dem Testen umgewandelt habe und nicht eines der Objekte genommen habe, um es auf die andere Maschine zu übertragen.
Aber wenn ich die erste Antwort von oben richtig verstanden habe, finde ich es schon einen Hammer von IBM, so etwas als Fehler zu sehen und diesen abzustellen. Einen WRITE in eine DDS-beschriebene Datei durchzuführen, wo nicht alle Felder explizit angesprochen werden, habe ich über Jahre hinweg immer wieder erfplgreich praktiziert. Was ich von Programmiererkollegen so gehört habe, scheint dies gar nicht so ungewöhnlich zu sein.
-
Das stimmt ja auch.
Allerdings ist ja nun mal die SQL-Ebene noch darunter (DB2/400).
Und wenn ich neue Daten erstelle und vor allem Dezimalfelder nicht korrekt initialisiere, gabs ja später beim Lesen Dezimalfehler (es sei denn, die Felder wurden auch beim Lesen nicht referiert), die ich bei der Umwandlung mit "Dezimalfehler korrigieren" ignorieren konnte.
Sich darauf zu verlassen, dass langjährige Fehler immer bestehen bleiben, ist meines Erachtens der falsche Weg.
Die Alternative ist eben SQL.
Da kann ich beim Insert nicht benötigte Felder weglassen, wenn diese einen Default haben, NULL erlauben oder per Trigger gefüllt werden.
Similar Threads
-
By binger in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 07-09-07, 13:44
-
By Commander Keen in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 20-10-06, 10:24
-
By AndyAtOpus in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 14-06-06, 07:49
-
By timeless in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 24-05-06, 06:37
-
By Kent in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 15-11-01, 10:59
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks