-
Pest oder Cholera
Hallo *all,
es ist wie immer, ich muß eine Datei bearbeiten in der Datensätze mit einem Gültig bis Datum sind.
Wenn ich eine View erstelle, komme ich schnell an die Daten, aber soweit ich weiß kann ich ja nicht die Reihenfolge der Sätze beeinflußen. Da ich dort Kunden-Nummern drin habe, müßte ich immer die komplette Datei lesen um sicher zu sein alle Sätze eines Kunden zu haben.
Mache ich eine LF kann ich sie schlüsseln und den Satzgruppenwechsel berücksichtigen.
Allein, ich weiß nicht wie ich dieses Konstrukt aus der View in ein LF übersetzen soll.
and (sodnbi = 99999999
or sodnbi >= YEAR(CURRENT DATE)*10000 +
MONTH(CURRENT DATE)*100 +
DAY(CURRENT DATE))
Könnte ich eigentlich eine LF auf die View machen? Nachdem ich nochmal nachgedacht habe, fällt mir ein das eine LF immer nur von einer PF gemacht werden kann.
GG
-
Wenn Du die View mit embedded SQL verarbeitest, kannst Du eine ORDER BY-Anweisung in dem DECLARE-CURSOR-Statement angeben und damit die Datensätze in der gewünschten Reihenfolge verarbeiten.
... oder bestehst Du darauf die Daten mit native I/O zu verarbeiten?
Übrigens SODNBI = 99999999 ist überflüssig, da 99999999 auf alle Fälle größer als das numerische Datum ist.
Auf alle Fälle sollte ein Index mit SODNBI als Schlüssel-Feld haben oder vielleicht besser KUNDE/SODNDBI vorhanden sein.
Falls Du zufällig schon auf Release 7.2 sein solltest kannst Du das numerische Datum im Format JJJJMMTT mit DEC(Current_Date, 8, 0) oder INT(Current_Date) ermitteln.
Birgitta
-
Danke,
ich muss darüber nachdenken, will die Daten eigentlich mit Cobol weiterverarbeiten.
Melde mich morgen wieder.
PS immer noch V5R4
-
will die Daten eigentlich mit Cobol weiterverarbeiten.
Das ist doch kein Problem, Du liest die Daten mit (embedded) SQL in eine Datenstruktur oder einzelne Host-Variablen und verarbeitest die Werte weiter mit Cobol.
Birgitta
-
ggf hab ich das Problem noch nicht verstanden, wenn doch, dann mach ein Index
mit Kundennr (aufsteigend) und g.ab.Datum absteigend auf die View, das geht.
(Datum als Datum oder numerisch JJJJMMTT)
Beim Zugriff mit 'Kunde und Datum' (setll und read) hast du immer den zu Zeitpunkt Datum gültigen Satz.
Robi
-
Hallo,
die Original-Datei hat über 300.000 Datensätze. Mich interessieren aber nur die Datensätze die Gültigkeitsdatum >= dem Tagesdatum bzw. den Wert 99999999 (immer gültig) haben.
Aufbau:
Kunden-Nummer Artikel-Nummer Preis Datum
1081_________ 123 __________0,70 14.12.2014
1081_________ 124__________ 0,99 15.12.2014
1081_________ 124__________ 1,05 10.12.2014
Mit der View habe ich halt den Vorteil immer nur aktuelle Sätze zu haben, mit der LF kann ich zwar auf den Kunden positionieren. Muß mir aber merken welchen Artikel ich gerade hatte und alle Datensätze die vom selben Artikel aber jüngeren Datums sind überlesen.
Da finde ich die View einfach schöner.
Mit embedded SQL in Cobol muß ich mal schauen. Ganz bestimmt eine tolle Sache wenn es mal läuft, aber bis dahin gibt es doch den ein oder anderen Stolperstein....
GG
-
Ok, verstanden,
Dann zu deiner ursprünglichen Frage:
Ja, du kannst einen Index auf die View legen oder die View im SQL mit order by lesen --> Birgitta's Antwort
SQL verwendet dann alles an LF/INdex was er gebrauchen kann oder sortiert selber.
(meine Cobol Zeit ist gefühlte 100 Jahre her, aber ich denke einen Index kannst du auch im Cobol 'native' verarbeiten)
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Zitat von KingofKning
Hallo,
die Original-Datei hat über 300.000 Datensätze. Mich interessieren aber nur die Datensätze die Gültigkeitsdatum >= dem Tagesdatum bzw. den Wert 99999999 (immer gültig) haben.
Aufbau:
Kunden-Nummer Artikel-Nummer Preis Datum
1081_________ 123 __________0,70 14.12.2014
1081_________ 124__________ 0,99 15.12.2014
1081_________ 124__________ 1,05 10.12.2014
Mit der View habe ich halt den Vorteil immer nur aktuelle Sätze zu haben, mit der LF kann ich zwar auf den Kunden positionieren. Muß mir aber merken welchen Artikel ich gerade hatte und alle Datensätze die vom selben Artikel aber jüngeren Datums sind überlesen.
Da finde ich die View einfach schöner.
Mit embedded SQL in Cobol muß ich mal schauen. Ganz bestimmt eine tolle Sache wenn es mal läuft, aber bis dahin gibt es doch den ein oder anderen Stolperstein....
GG
... selbst das geht mit einer DDS LF, Denormalisierung ist das Zauberwort; Du brauchst doch nur eine Datei mit einem Satz, wo Du um 0:00 Uhr das aktuelle Datum reinschreibst.
D*B
-
Wenn du kein embedded SQL verwenden willst (oder kannst) hast du diesbezüglich tatsächlich ein Problem.
Per DDS kannst du zwar eine LF sortiert nach Datum definieren, aber wenn du per Gruppenwechsel-Logik nach Kunde/Artikel arbeiten musst, kannst du dies nicht per simpler LF definieren.
Hier bieten sich 2 Möglichkeiten an:
1. Gib die View mit z.B. einen QMQRY in eine temporäre Tabelle mit Index nach Kunde/Artikel aus.
2. Verwende die COBOL-Anweisung SORT, gib als Input die Datei und als Output eine Prozedur an.
-
oder ein OPNQRYF direkt vor dem Aufruf?
Frag mich aber nicht nach Details, das habe ich zum letzten Mal vor gut 15 Jahren mal gemacht - würde aber zu Deinem OS400-Release passen
Gruß, Christian
-
... ist zwar alles schon ewig her, aber:
ich kann doch per DDS zwei Tabellen miteinander verjoinen und mit DYNSLT in einer COMP Bedingung zwei Felder aus unterschiedlichen Tabellen vergleichen und wenn in der einen - nicht eben zufällig - das Datum von heute im passenden Format drinsteht ...
PS: das geht doch selbst bei Query: erst mit einem QMQRY das aktuelle Datum, oder den Monat, oder whatever in eine Auswahltabelle schreiben, die dann im eigentlichen Query mit dazu geholt wird...
Similar Threads
-
By sisarr in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 29-09-19, 19:46
-
By W.Steiner in forum Archiv NEWSblibs
Antworten: 1
Letzter Beitrag: 13-11-02, 10:15
-
By Robi in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 22-03-02, 08:27
-
By PS in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 23-08-01, 08:33
-
By horst in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 10-07-01, 14:26
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