[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2003
    Beiträge
    290

    SQLRPGLE Infos zu verwendeten Feldern auslesen

    Hallo zusammen,

    ich wüsste gerne, ob ich die Felder (Anzahl und oder Name), die von einem SELECT in einem SQLRPGLE verwendet werden, "auslesen" kann ?

    Hintergrund ist, dass der SQL-Befehl an das RPG-Programm übergeben wird und dort "nur" ausgeführt wird, die Daten werden via *table-Objekt (Script Net.Data) zurückgegeben.

    Nun wäre es für mich wichtig, "flexibel" auf die Feldliste reagieren zu können !

    Vielen Dank im Voraus !
    Peet

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wenn dein Programm den SQL bekommt, kannst du den SQL ja parsen, m.a.W, also selber analysieren.
    Indirekt geht das nach dem Prepare auch per "describe statement", dabei erhältst du dann in einer SQLDA-Tabelle die Ergebnisnamen des Select's.
    Auf den Ursprungsnamen oder dieTabelle bei Joins kommst du da leider nicht, wenn Umbenennungen im SQL erfolgen.
    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
    Jan 2003
    Beiträge
    290
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Wenn dein Programm den SQL bekommt, kannst du den SQL ja parsen, m.a.W, also selber analysieren.
    Indirekt geht das nach dem Prepare auch per "describe statement", dabei erhältst du dann in einer SQLDA-Tabelle die Ergebnisnamen des Select's.
    Auf den Ursprungsnamen oder dieTabelle bei Joins kommst du da leider nicht, wenn Umbenennungen im SQL erfolgen.
    Hallo,
    vielen Dank für die Infos.
    Hast du ggf. ein Beispiel fürs "parsen" oder "describe statement" ?

    Gruß...

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Nunja, parsen heißt, den SQL-String selber in Worte zerlegen, Syntax beachten und Feldnamen extrahieren.
    Welcher Name nun zu welcher Tabelle gehört (CTE, Join, Subselect u.v.m.) ist dann noch aufwendiger.

    Wenn du den SQL per Prepare vorbereitet hast, kannst du diesen per "describe ..." analysieren.
    Hierbei werden wie gesagt nur Ergebnisnamen geliefert.

    Den Describe-Befehl kannst du im SQL-Reference-Handbuch nachlesen.
    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
    Aug 2001
    Beiträge
    2.873
    Vielleicht noch eine kleine pragmatische Idee, die jedoch nur dann funktioniert, wenn die Felder alle benannt sind:
    1. Erstelle einfach eine Tabelle (nicht in der QTEMP) sondern irgendeiner Arbeits-Bibliothek basierend auf dem SELECT-Statement und ohne Daten.
    z.B. so CREATE TABLE MyLib/MyTable as (SELECT ....) with no Data;
    2. Anschließend kannst Du die Spalten-Namen, Anzahl und Reihenfolge der Spalten, sowie deren Definition aus der Catalog-View SYSCOLUMNS auslesen.
    3. Lösche die Arbeitsdatei wieder.

    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

  6. #6
    Registriert seit
    Jan 2003
    Beiträge
    290
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Vielleicht noch eine kleine pragmatische Idee, die jedoch nur dann funktioniert, wenn die Felder alle benannt sind:
    1. Erstelle einfach eine Tabelle (nicht in der QTEMP) sondern irgendeiner Arbeits-Bibliothek basierend auf dem SELECT-Statement und ohne Daten.
    z.B. so CREATE TABLE MyLib/MyTable as (SELECT ....) with no Data;
    2. Anschließend kannst Du die Spalten-Namen, Anzahl und Reihenfolge der Spalten, sowie deren Definition aus der Catalog-View SYSCOLUMNS auslesen.
    3. Lösche die Arbeitsdatei wieder.

    Birgitta

    Hallo zusammen,

    vielen Dank an euch beide für die Infos und Ideen.
    Ich werde die Vorschläge mal testen.

    Gruß
    peet

Similar Threads

  1. SQLRPGLE Problem mit SQL Communication Area
    By ExAzubi in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 09-03-14, 15:41
  2. JOBLOG auslesen
    By tarkusch in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 11-02-14, 13:25
  3. Prozessor Gruppe Pnn Auslesen?
    By AndreasH in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 18-09-02, 10:36
  4. Infos für DB2/400
    By Ma-Cell in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 29-05-02, 16:44
  5. Compilierung SQLRPGLE
    By B.Hauser in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 01-10-01, 17:31

Tags for this Thread

Berechtigungen

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