-
BigInt Variable aus Pointer String extrahieren
Hallo Zusammen,
ich habe ein Trigger Programm welches an verschiedenen Dateien hängt.
Dieses Trigger Programm empfängt den jeweiligen Datensatz (before/after) als Pointer.
Der Pointer wiederum wird in eine String Variable übergeben.
Im Debug liegt dann der gesamte Datensatz als String vor. Man kann alle Daten lesen.
Ein Dateifeld ist vom Typ BigInt. Dieses wird mir bereits im Debug als ? dargestellt.
Definiere ich die Dateistruktur mit 'extname' und übergebe dann den String direkt in die Struktur, wird das BigInt Feld ohne Probleme übergeben. Wenn ich versuche mit %subst o.ä. den Wert einzeln aus dem String zu extrahieren schlägt dies fehl. Entweder es kommt ein Abbruch oder der Wert ist falsch/nicht lesbar o.ä. (je nach Befehl).
Dies ist erstmal das grundsätzliche Problem.
Nachfolgend mal ein paar Bilder dazu.
Entsprechende Datei um die es geht ist ein SQL Table.
Das Feld ist wie folgt definiert:
eindeutigeID for AKID bigint generated always as identity (start with 1 increment by 1 cycle),
Nun der Prozedur Auszug mit Dateistruktur bei welchem es problemlos funktioniert.
// Prozedur zur Ermittlung der Eindeutige ID des Datensatzes.
dcl-proc pr_ErmittleEindeutigeSatzId_1;
dcl-pi *n like(eindeutigeId);
datenVorVorgang pointer const;
datenNachVorgang pointer const;
dateiBibliothek char(10) const;
dateiName char(10) const;
end-pi;
dcl-s daten char(900) based(datenNachVorgangLokal);
dcl-s startPosition int(5) inz(777);
dcl-s laengeInBytes int(10) inz(8);
dcl-s eindeutigeId varchar(100) inz;
// Eindeutige ID aus den Pointer Informationen extrahieren.
datenNachVorgangLokal = datenNachVorgang;
eindeutigeId = %subst(daten: startPosition: laengeInBytes);
return eindeutigeId;
end-proc;
Nun der Prozedur Auszug bei dem das Feld einzeln extrahiert werden soll.
Hier funktioniert es nicht.
// Prozedur zur Ermittlung der Eindeutige ID des Datensatzes.
dcl-proc pr_ErmittleEindeutigeSatzId_1;
dcl-pi *n like(eindeutigeId);
datenVorVorgang pointer const;
datenNachVorgang pointer const;
dateiBibliothek char(10) const;
dateiName char(10) const;
end-pi;
dcl-s daten char(900) based(datenNachVorgangLokal);
dcl-s startPosition int(5) inz(777);
dcl-s laengeInBytes int(10) inz(8);
dcl-s eindeutigeId varchar(100) inz;
// Eindeutige ID aus den Pointer Informationen extrahieren.
datenNachVorgangLokal = datenNachVorgang;
eindeutigeId = %subst(daten: startPosition: laengeInBytes);
return eindeutigeId;
end-proc;
Bin für jeden Hinweis dankbar!
Gruß
Muller
Similar Threads
-
By edig in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 25-01-19, 15:20
-
By LordCinimod in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 06-11-15, 05:56
-
By peter.kinne in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 04-02-09, 09:58
-
By AndreasH in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 22-09-02, 11:00
-
By KB in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 14-06-01, 10:51
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