[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2001
    Beiträge
    833

    Unhappy Aus welcher Bibliothek wird gelesen

    Hallo zusammen,

    in einem SQLRPGLE müsste ich an einer Stelle wissen aus welcher Bibliothek die Daten kommen.

    Das SQL sieht bspw. so aus :

    select xxx from table

    Wenn aus Bibliothek A gelesen wird, dann soll eine Weiterverarbeitung stattfinden
    Wenn nicht dann etwas anderes.

    Das Register current Schema liefert mir nur *LIBL
    PHP-Code:
     exec sql
        values current_schema into 
    :avar
    In der SCLCA sieht man im Feld SQLERM die Bibliothek
    PHP-Code:
    SQLERM OF SQLCA =            ....5...10...15...20...25...30...35...40...45...50...55...60       1   ' SQLDATA SYTBLH01V  MKLIB 
    Gibt es dafür auch ein Register ?

    Gruß
    Michael

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    SQL-technisch ist das nicht vorgesehen, da hilft nur ein CLP/CLLE mit dem guten halten RTVOBJD ... RTNLIB(&Lib).
    Allerdings solltest du dann keine OVRDBF's verwenden;-).
    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
    Jun 2001
    Beiträge
    1.975
    Kannst du die datei nicht in der F-Karte definieren und bei
    if *in99 and not *in99 im pgm lesen?

    Die File infDs sagt dir die Lib, das sollte auch die sein, die SQL verwendet

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    "In der SCLCA sieht man im Feld SQLERM die Bibliothek"
    Was brauchst du da denn noch mehr?
    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

  5. #5
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    OK, das hatte ich überlesen und habs noch nie gebraucht
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ich auch nicht und ich hatte es auch übersehen.
    Ich weiß auch nicht, ob dann alle Libs eines Joins aus mehreren Libs drinstehen.
    So groß ist das Feld ja nicht.
    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

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Ich gehe davon aus, dass Du mit System-Naming arbeitest und deshalb die Bibliotheksliste durchsuchen musst. (Bei SQL-Naming sollte das Current_Schema über GET DIAGNOSITICS ermittelt werden können)

    Hier 2 Ansätze für System-Naming:
    1. API QDBRTVSN (Retrieve Short System Name)
    Das API ermittelt den System-Namen der Datei/Tabelle/View, sowie die erste Bibliothek in der das Objekt gefunden wird.

    2. Wenn Du den Datei/Tabellen/View-Namen kennst, dann durchsuch' einfach die Bibliotheksliste, etwa so:
    Code:
    Select Schema_Name
      from Library_List_Info join SysTables on Schema_Name = Table_Schema
      Where Table_Name = 'YOURTABLE'
      Order By Ordinal_Position
      Fetch First Row Only;
    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

  8. #8
    Registriert seit
    Jan 2001
    Beiträge
    833
    Hallo zusamen,

    danke für die Tipps.

    Ich habe es jetzt so gelöst:
    PHP-Code:
    exec sql
     SELECT ORDINAL_POSITION into 
    :posTestLibrary
     FROM QSYS2
    /LIBRARY_LIST_INFO
       where SYSTEM_SCHEMA_NAME 
    'dieLib'
    Damit bekomme ich die Position der Bibliothek in der *LIBL.
    Somit kann ich in diesem Fall festellen ob zuerst die Testlib oder die Prodlib
    in der *LIBL steht.

    Für diesen Fall ist es ausreichend.

    Schönes WE an alle
    Gruß
    Michael

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Steht da auch die Current Library drin?
    Die liegt noch vor der Liste und könnte die Testlib sein.
    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

  10. #10
    Registriert seit
    Jan 2001
    Beiträge
    833
    Hi,

    die Current Library steht von der Position her vor den User Bibliotheken.
    Somit kann auch die Testlib die Current Lib sein.

  11. #11
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Zitat Zitat von mk Beitrag anzeigen
    Hallo zusamen,

    danke für die Tipps.

    Ich habe es jetzt so gelöst:
    PHP-Code:
    exec sql
     SELECT ORDINAL_POSITION into 
    :posTestLibrary
     FROM QSYS2
    /LIBRARY_LIST_INFO
       where SYSTEM_SCHEMA_NAME 
    'dieLib'
    Damit bekomme ich die Position der Bibliothek in der *LIBL.
    Somit kann ich in diesem Fall festellen ob zuerst die Testlib oder die Prodlib
    in der *LIBL steht.

    Für diesen Fall ist es ausreichend.

    Schönes WE an alle
    Gruß
    Michael
    ... geht natürlich schief, wenn nach Öffnung einer Datei am libl geschraubt wird.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  12. #12
    Registriert seit
    Jan 2001
    Beiträge
    833
    Zitat Zitat von BenderD Beitrag anzeigen
    ... geht natürlich schief, wenn nach Öffnung einer Datei am libl geschraubt wird.
    Hi Dieter,

    jo das stimmt. Wenn aber daran geschraubt wird, dann habe ich ganz andere Probleme.
    Gruß
    Michael

Similar Threads

  1. welcher editc für 0,07 statt ,07
    By dibe in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 08-08-17, 15:38
  2. Antworten: 40
    Letzter Beitrag: 03-11-14, 09:15
  3. Source in Bibliothek finden!
    By VWBussi in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 24-08-12, 09:34
  4. kopieren von bibliothek
    By logo_2 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 28-04-03, 07:17
  5. Bibliothek #LIBRARY
    By procher in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 23-10-02, 17:32

Berechtigungen

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