-
Chain Key Wildcard
Hallo!
Ich habe eine Frage bzgl. eines Chains.
Als Beispiel: chain(key1:key2:key3:key4)
Jetzt möchte ich den Keys 1,2,4 feste werte zuordnen und bei key3 ist es mir egal was drinsteht (-> wäre sozusagen ein *all - oder wie man es nennen will)
Ist soetwas möglich? Besten Dank im voraus!
-
Da gibt es mehrere Möglichkeiten:
1. Du legst eine neue logische Datei an mit den Keys 1,2,4 und evtl. 3 und verwendest diese.
2. Du setzt mit den Keys 1,2 auf (SETLL) und liest (READE) in einer Schleife solange bis Schlüssel 4 dem fixen Wert entspricht.
3. Du verwendest embedded SQL:
Code:
Exec SQL Select * into :DSRecord
From File
Where Key1 = 'X' and Key2 = 'Y' and Key4 = 'Z'
Fetch First Row Only;
Birgitta
-
Aus Performancegründen empfehle ich Methode 1 (LF/Index), dabei ist es egal ob du CHAIN oder SQL verwendest.
-
 Zitat von philsturm
bei key3 ist es mir egal was drinsteht (-> wäre sozusagen ein *all - oder wie man es nennen will)
Schüttel...
... was soll man denn unter egal verstehen? und was ist mit den anderen Feldern? und wenn das mehrere Sätze sind, welcher soll es denn dann genau sein, oder etwa alle?
Genau das fällt dir auch bei dem vorgeschlagenen SQL Weg auf die Füsse, bei mehreren Sätzen kommt da ein Fehler zurück.
D*B,
den es bei solchem Datendseign immer graust!
-
Nun ja, nicht so hart.
Wenn mir Key3 in diesem Fall egal ist, bekomme ich per LF (mit Key1, Key2, Key4, Key3) halt den 1. Satz mit dem 1. Schlüssel aus Key3 und kann dann ggf. per READE weiterlesen.
Beim SQL kann ich da noch mit "fetch first 1 rows only" einschränken, dann gibts auch da keinen Fehler, ansonsten halt einen Cursor deklarieren und mit Fetch arbeiten.
Anders mache ich es ja auch nicht, wenn ich in den berühmten Altanwendungen eine andere Sortierfolge benötige. Es gibt da durchaus PF's mit 30-50 verschiedenen LF's.
-
.. doch, doch, das muss auf den Punkt gebracht werden. Hier gibt es nämlich einen wesentlichen Unterschied zwischen RLA und SQL. RLA liefert den sequentiell ersten Satz der PF mit den passenden Where Kriterien zurück und SQL die Menge derjenigen, für die die WHERE Bestimmung trifft. Folge ich deinem Vorschlag, bekomme ich irgendeinen (in Worten: irgend einen!) zurück, auf den die Where Bedingung zutrifft, im schlimmsten Falle (und shit happens) bei jedem Versuch einen anderen!
Die einzige Information, die ich daraus ableiten kann ist dann, die Existenz eines Satzes mit den vorgegebenen Kriterien. Wechsel von RLA zu SQL ist eben doch ein wenig mehr als SQE und CQE und angebliche, messtechnisch nicht verifizierbare Geschwindigkeitsgewinne und andere solche Nebensächlichkeiten, sondern das hat was mit Design zu tun!
D*B
-
Vielen Dank für die ganzen Antworten und die lebhafte Diskussion.
Der Vorschlag mit den LFs hat mir sehr weitergeholfen und das Problem gelöst.
Similar Threads
-
By DISCOME in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 26-02-10, 14:47
-
By Souljumper in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 13-11-06, 12:34
-
By woki in forum NEWSboard Programmierung
Antworten: 13
Letzter Beitrag: 09-03-06, 15:43
-
By VisioX in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 10-06-05, 09:48
-
By newcomer in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 30-05-05, 10:12
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