[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Dec 2005
    Beiträge
    131

    Übersicht über logische Dateien

    Mal wieder plagt mich das tägliche Leid:

    ich schreibe ein Programm, wo meine Daten nach X,Y,Z sortiert sein sollen.

    Und ich bin mir sicher, eine der 100 logischen Dateien, die wir haben, hat genau diese Sortierung! Aber welche?

    Ein ehemaliger Kollege hat uns ein sicherlich nützliches Tool hinterlassen (DSPPFD), mit welchem ich alle logischen Dateien sehen kann, die zur physischen gehören. Dort werden auch die Keyfelder und sogar SELECT/OMIT-Felder angezeigt. Aber leider muss man sich dort auch durchblättern / -suchen, um entsprechende Dateien zu finden.

    Eine optimale Lösung wäre eine Anwendung, mit der ich ALLE Dateien in eine Datei schreibe - mit Key-Feldern (evtl. auch mit O/S-Bedingungen).
    Nun gibt es eine Anzeige, wo ich die physische Datei angebe, Keyfelder auswähle und entsprechende logische Dateien sehe.

    Gibt es so etwas? Ist so etwas mit "normalen" Mitteln auf der iSeries möglich (evtl. selbst programmieren)?

    Danke für Lösungen / Hinweise / Tips !

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Selber programmieren ist natürlich immer möglich:

    DSPDBR = angehängte LF's eine PF
    DSPFD ... *ACCPTH = Keydefinitionen
    DSPFD ... *SELECT = Satzauswahl

    Jeweils mit Ausgabe in *OUTFILE, den Rest musst du nun selber erledigen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Dec 2005
    Beiträge
    131
    Hm, diese Befehle kenne ich - und ich habe gehofft, OHNE sie auszukommen (zumindest in dieser Tiefe).

    - Also geht es wohl erstmal darum, ALLE physischen Dateien (in mehreren Bibliotheken) zu finden.
    - dazu dann die logischen
    - dazu dann die Keyfelder
    - uiuiui...

    Vielleicht hat ja jemand noch einen heißen Insider-Tip *daumendrück*

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Was meistens hilft:

    1. STRDBG (ohne weitere Angaben)
    2. STRSQL
    3. Select * From MyFile Order By Key1, Key2, ... KeyN
    4. Joblog anschauen und prüfen welcher Zugriffweg verwendet wurde. In den meisten Fällen ist es eine logische Datei oder ein SQL-Index mit den Schlüssel-Feldern in der richtigen Reihenfolge.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    Registriert seit
    Dec 2005
    Beiträge
    131
    @Brigitta:

    ich glaube, der Zweck meiner Anforderung ist noch nicht ganz klar hervorgebracht:

    wir haben hunderte, tausende Dateien (logische). Wenn wir nun ein neues Porgramm schreiben, wollen wir natürlich, wenn machbar, eine dieser Dateien verwenden. Aber zig Dateien nach dem Key zu durchforsten, ist wesentlich anstrengender als einfach eine neue zu erstellen. Also ist das oft der Weg des geringsten Widerstands (bis unser Chef mal wieder analysiert...).

    Und dewsegen wäre ein kleine Dialogprogramm fein, wo man eine Datei mit benötigten Keys angeben kann.
    Dieses ist sicherlich der letzte und einfachste Schritt.
    Vorne weg müssten wir eben diesen "Index" aufbauen...

    Ich hoffe, es ist jetzt etwas verständlicher, worauf ich hinaus will!?

    Eine allgemeingültige Datei, in der ich "ALLE" Dateien habe, die ich wahlweise selektieren kann.

  6. #6
    Registriert seit
    Aug 2004
    Beiträge
    923
    Hello,

    ich will ja nicht meckern, aber hunderte Dateien an denen dann tausende logische hängen haben wir auch, hat wohl jeder.
    Sehe gar nicht auf die Schnelle wo da das Problem ist?
    So eine Datei hat im Normalfall zehn bis 20 logische maximal und die passende ist schnell gefunden wenn man mal eine benötigt.

    Das fängt schon im Design an bei der Namensvergabe an.

    Und wer mehr als 20 logische hat/braucht macht in meinen Augen was verkehrt irgendwie.

    Deshalb stelle ich das mal zur Diskussion diese Thematik, wie schauts denn bei den anderen Forumsmitgliedern aus?

    kuempi

  7. #7
    Registriert seit
    Dec 2005
    Beiträge
    131
    Natürlich haben nicht alle physischen Dateien so viele logische, aber die Spitzenreiter bei uns sind mit ca. 120 logischen vertreten (ob man bestimmte Sachen auch via Programmierung hätte lösen können, sei mal dahingestellt).

    Und anhand des Namens kann man ja nun wirklich nicht erkennen, welche Sortierung enthalten ist!?

    Nehmen wir doch einfach mal einen Kundenstamm mit typischen Feldern (Kundennummer, Name, Anschrift, Telefon, ...)
    Die physische Datei dazu heißt KUNDP1 (P=physisch, 1=1. Datei [manchmal gibt es mehrere von ähnlicher Art)

    Wenn ich also nach Kundennummer, Name, Anschrift sortieren will - wie soll ich das anhand des Namens erkennen?
    KUNDLNNA ? (für L=logisch, N=Nummer, N=Name, A=Anschrift)

    Und es in der Beschreibung kenntlich zu machen, ist klar - aber bei so (wie o.g.) vielen ist es eben mühselig.

    Aber dennoch interessieren mich andere (Design-)Vorschläge auch!

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Zur Analyse hilft ggf. auch die QSYS2/SYSKEYS.
    In dieser sind sämtliche PF/LF's mit ihren Schlüsseln in der Reihenfolge hinterlegt.

    Allerdings sind in dieser nur die Namen der direkten LF bzw. PF hinterlegt.
    Handelt es sich um eine LF, muss man hier dann noch die PF trotzdem ermitteln.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Dec 2005
    Beiträge
    131
    In diesem SQL sehe ich aber 1. längst nicht alle Dateien (Felder) und 2. keine Schlüsselfelder!? Hilfreicher in Bezug auf Vollständigkeit ist dort die dazugehörige PF "QSYS/QADBIFLD"

    Oder ist diese SYSKEYS bei jedem System anders? Ich zitiere einfach mal die Datei:

    CREATE VIEW SYSKEYS (INDEX_NAME FOR "IXNAME", INDEX_OWNER FOR "IXCREATOR", COLUMN_NAME FOR "COLNAME", COLUMN_POSITION FOR "COLNO", ORDINAL_POSITION FOR "COLSEQ", "ORDERING", INDEX_SCHEMA FOR "IXDBNAME", SYSTEM_COLUMN_NAME FOR "SYS_CNAME", SYSTEM_INDEX_NAME FOR "SYS_IXNAME", SYSTEM_INDEX_SCHEMA FOR "SYS_IDNAME") AS SELECT DBILFI, VARCHAR(STRIP(DBIOWN),128), DBILFL, INTEGER(DBIPOS), INTEGER(DBKPOS), DBKORD, DBKLB2, DBKFLD, DBKFIL, DBKLIB FROM QSYS.QADBIFLD, QSYS.QADBKFLD WHERE DBIFIL = DBKFIL AND DBILIB = DBKLIB AND DBKFLD = DBIFLD AND DBIATR = 'IX'

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Stimmt, SYSKEYS ist da auf SQL-Index eingeschränkt.
    Der Originalname ist QSYS/QADBKFLD.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    Dec 2005
    Beiträge
    131
    Jau, die hilft mir doch enorm weiter.
    Danke, ich hatte nur die o.g. gefunden.

    Mal sehen, was man daraus basteln kann!

  12. #12
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Hallo,

    in der View SYSKEYS sind nur die Schlüssel-Felder aus SQL-Indices oder Key Constraints hinterlegt.

    Ansonsten kannst Du ja mal prüfen ob Dich der Befehl ANZDBFKEY eventuell weiterbringt.

    Ansonsten schau doch mal unter help/400 nach, ob sich da nicht ein brauchbares Tool finden lässt:
    Help400

    Eine nicht kostenfreie Lösung u.a. bietet auch das Tool FileAccess der Fa. SSS. Hier können die auf einer physischen Datei liegenden logischen Dateien (oder SQL Indexes und Views) angelistet werden. Weiterhin kann eine Auswahl an Schlüssel-Feldern angegeben werden. Alle logischen Dateien mit den angegebenen Schlüssel-Feldern in der vorgegebenenen Reihenfolge werden Reverse Intense angezeigt.
    Weitere Informationen erhälst Du unter dem folgenden Link:
    SSS-Software GmbH is a specialist for iSeries Tools

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

Similar Threads

  1. SQL Update aus zwei Dateien mit 3 Schlüsselfeldern
    By mk in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 13-07-12, 08:53
  2. Defekte Dateien
    By Rincewind in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 23-01-07, 08:49
  3. Physische Datei mit mit vielen logischen Dateien
    By TARASIK in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 01-09-06, 17:25
  4. Bibliothek mit 50000 Physischen Dateien
    By TARASIK in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 29-08-06, 10:49
  5. logische Dateien lesen wären SAVLIB
    By Sven99 in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 09-02-05, 10:14

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •