[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2002
    Beiträge
    116

    SQL - Profis ?

    Ich will eine Datei in einem SQL-ILE-RPG nach verschiedenen
    Kriterien auswerten. z.B.:

    SELECT (Feld 1), (Feld 2) FROM SOMEWHERE
    WHERE (Feld 3) = (Wert 3)
    GROUP BY (Feld 1), (Feld 2)
    ORDER BY (Feld 1), FELD 2)

    wobei die Felder erst bei Ausführungszeit bekannt sind.

    Wr weiss Rat ?

    Merci
    Peter

  2. #2
    Registriert seit
    Jan 2001
    Beiträge
    340

    dynamic embedded SQL

    Kurzform :

    SQL: declare xyz cursor for xyz_Statement

    RPG: eval myvar = 'select ...'

    SQL: prepare xyz_statement from :myvar

    SQL: open xyz

    SQL: fetch from xyz ...

    zu empfehlen ist auch der Blick in's Handbuch (aber wer tut das schon). Da steht das nämlich alles

    Ich stelle die Links trotzdem mal rein

    SQL Programming

    SQL reference

    Gruss
    Rolf

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo Peter,

    wichtig wäre hier noch zu wissen welche Bestandteile genau variabel sein sollen. Soweit nämlich mit der Verwendung von prepared Statements prepares wiederverwendbar sind, wird das ganze flotter.

    @Rolf: Ganz so einfach ist es nur fast, folgendes Beispiel geht z.B. schief:

    SELECT * FROM KUNDE WHERE NAME = <Feld>

    wenn in Feld nun O'Hara reinkommt, gibt es einen Laufzeitfehler.
    vermeidbar ist auch das mit prepared statements.

    also: den Ewald mit

    myvar = "SELECT * FROM KUNDE WHERE name = ?"
    ...
    PREPARE xyzStatement
    ...
    OPEN xyz USING :Feld

    Fazit: Prepared Statements benutzen, aber dann muss man wieder unterscheiden was Variable sein soll und was nicht. Auf diese Art kann man nämlich z.B. keine Dateinamen oder Feldnamen variabel machen. Dafür werden dann zuweilen sogenannte Deskriptoren empfohlen (würde ich eher die Finger von lasen).

    Dieter Bender

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.873

    Descriptor Area

    Hallo Peter,

    eine Erschrwernis kommt noch hinzu:
    Da die Felder zum Umwandlungs-Zeitpunkt nicht bekannt sind, kann auch keine Datenstruktur für die Ausgabe festgelegt werden.
    Deshalb muss mit einer Descriptor Area (SQLDA) gearbeitet werden.

    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. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. für SQL Profis: Preisliste runden mit SQL
    By hs in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 30-01-02, 11:37

Berechtigungen

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