-
Moin,
das mit den /36 Daten kenne ich leider zur genüge. Damit kämpfen wir auch, die Dateien enthalten alles was so eine /36 Datei enthalten kann:
- Satzarten
- undefiniertes, von dem keiner mehr was weiss
- Datumsangaben in allen Variationen und (Un-) Gültigkeiten
- blanks in gepackten Felder und gezonten Feldern usw.
Sollte dir die genaue interne Struktur bekannt sein, dann versuche folgendes: Triggerprogramm anklemmen, das Programm mach dann eine Korrektur mit SQL update /36 Datei set substr(Feld , von , länge) = : Neuer Wert.
Ist sicherlich nicht schön, aber funzt gut.
mfg
DKSPROFI
-
 Zitat von DKSPROFI
Moin,
das mit den /36 Daten kenne ich leider zur genüge. Damit kämpfen wir auch, die Dateien enthalten alles was so eine /36 Datei enthalten kann:
- Satzarten
- undefiniertes, von dem keiner mehr was weiss
- Datumsangaben in allen Variationen und (Un-) Gültigkeiten
- blanks in gepackten Felder und gezonten Feldern usw.
Sollte dir die genaue interne Struktur bekannt sein, dann versuche folgendes: Triggerprogramm anklemmen, das Programm mach dann eine Korrektur mit SQL update /36 Datei set substr(Feld , von , länge) = : Neuer Wert.
Ist sicherlich nicht schön, aber funzt gut.
mfg
DKSPROFI
Die Strukturen der Dateien habe ich.
Ich schiebe den Satz in eine DS ohne Felder und prüfe dann im von-bis Bereich der num. Felder den Inhalt auf x'40' oder auch x'00'.
Wenn fehlerhaft, korrigiere ich den von-bis Bereich und schiebe die DS ohne Felder in die DS für die extern beschriebene Datei, bevor ich den Satz schreibe.
Vg.
-
Wenn du das im Trigger machst, kannst du dir die Schieberei ja sparen.
Die Triggerinfo übergibt dir eine relative Adresse zum Puffer.
Somit kannst du folgendes tun:
dcl-s basBI pointer;
dcl-s basAI pointer;
dcl-ds BI based(basBI);
end-ds;
dcl-ds AI based(basAI);
end-ds;
basBI = %addr(Triggerinfo) + Triggerinfo.OrigOffset;
basAI = %addr(Triggerinfo) + Triggerinfo.NewOffset;
Somit kannst du auch mehrere Strukturen auf derselben Adresse basieren lassen:
dcl-ds BIChar based(basBI);
end-ds;
dcl-ds AIChar based(basAI);
end-ds;
D.h., in AIChar prüfst du, und in AI schreibst du.
-
 Zitat von Fuerchau
Wenn du das im Trigger machst, kannst du dir die Schieberei ja sparen.
Die Triggerinfo übergibt dir eine relative Adresse zum Puffer.
Somit kannst du folgendes tun:
dcl-s basBI pointer;
dcl-s basAI pointer;
dcl-ds BI based(basBI);
end-ds;
dcl-ds AI based(basAI);
end-ds;
basBI = %addr(Triggerinfo) + Triggerinfo.OrigOffset;
basAI = %addr(Triggerinfo) + Triggerinfo.NewOffset;
Somit kannst du auch mehrere Strukturen auf derselben Adresse basieren lassen:
dcl-ds BIChar based(basBI);
end-ds;
dcl-ds AIChar based(basAI);
end-ds;
D.h., in AIChar prüfst du, und in AI schreibst du.
Cool :=) Danke. Vg.
Similar Threads
-
By KingofKning in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 17-07-20, 12:03
-
By votch in forum NEWSboard Programmierung
Antworten: 17
Letzter Beitrag: 03-02-20, 12:42
-
By svente in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 22-08-18, 16:34
-
By Peet in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 31-05-17, 10:41
-
By woy in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 26-03-15, 08:49
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