[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2011
    Beiträge
    25

    SQLRPGLE / Cursorname dynamisch erzeugen

    Hallo zusammen,

    ich habe eine kurze Frage, und zwar, ist es in SQLRPGLE möglich den Corsornamen z.B. aus einer Variabele zu lesen, bzw. diesen irgendwie dynamisch zu setzen ?

    z.B.
    exec sql PREPARE c1 FROM :sqlstm;

    hier soll der Cursoname c1 variabel sein.

    Danke.

    MfG

    Haunted

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Dies ist leider nicht möglich, da der Cursorname beim Open/Fetch/Close statisch im Programm angegeben werden muss.

    Aber wozu auch ?
    Nach einem Close C1 lässt sich mittels Prepare C1 from der Cursor ja neu definieren, so dass der nächste Open den neuen Select ausführt.
    Einen dynamischen Cursor benötigt man absolut nicht.

    Verwendet man sogar beim Fetch eine SQLDA läßt sich sogar der Select absolut dynamisch verarbeiten.
    Mittels Describe Statement lassen sich auch dei Felddefinitionen in eine SQLDA auslesen, so dass man nur noch per %alloc() Speicher für die Inhalte zuweisen muss.

    Ansonsten ist nur das etwas mühsame CLI-Interface (C-SQL-Routinen) 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
    Feb 2011
    Beiträge
    25
    Hi,

    danke für deine Antwort.


    Wir benötigen dies da wir die Cursors offen halten, da wir die Daten eventuell weiterlesen wollen. (Paging).

    MfG

    Haunted

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Da solltest du dir wohl eine andere Lösung einfallen lassen.
    Das Offenhalten verstehe ich so nämlich nicht.
    Wenn ein Programm mehrere Cursor benötigt kann es diese doch selber offen halten.

    Was natürlich nicht geht, ein zentrales Unterprogramm für beliebige dynamische SQL's zu stricken.
    Das ist auch nicht die richtige Vorgehensweise beim Arbeiten mit SQL.

    Am Besten ist es tatsächlich, dass jedes Programm für sich die nötigen statischen SQL's enthält.
    Das ist immer performanter und auch übersichtlicher.
    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
    Feb 2011
    Beiträge
    25
    Offengehalten wird der Cursor deswegen, weil z.B. zuerst die ersten 200 Datensätze verarbeitet werden und dann ja nach bedarf die nächsten 200.

    Ich hatte an ein kleines Unterprogramm gedacht, an den ich nur ein SQL Statement übergeben muss und dann mein Ergebnis im gewünschten Dateiformat zurück bekomme.

    Dies sollte einmal mit dynamischen und einmal mit embedded SQL funktionieren.

    Mit dem dynamischen SQL funktioniert dies auch soweit. Nur kann ich dann eben in einem Programm nicht mehrere Selects gleichzeitig offenhalten.

Similar Threads

  1. embedded SQL statisch oder dynamisch
    By Jamikl in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 30-06-06, 09:48
  2. FETCH INTO Variablen Dynamisch verändern
    By marcel331 in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 11-04-06, 15:47
  3. Externe Datenstruktur dynamisch
    By Stefan_Sk in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 16-12-05, 09:23
  4. Identity Colum / Auto increment selbst erzeugen?
    By scoobydoo in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 25-11-05, 10:40
  5. *zoned bei SQLRPGLE Programm
    By Stefan_Sk in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 12-07-05, 13:04

Berechtigungen

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