[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    35

    2. SQL bringt keine Daten

    Hallo zusammen,

    ich habe folgendes Problem:

    Ich erstelle in einem SQL-LE Programm dynamisch in einer Unterroutine einen String für ein Select und lasse diesen dann ausführen. Für jeden gefundenen Satz folgt ein INSERT.

    Klappt soweit alles wunderbar.

    Wenn ich jetzt den String ändere und die gleiche Routine wieder aufrufe, kommen keine Daten mehr. Der SQL String ist korrekt, habe ich getestet. Es funktioniert aber immer nur der Erste.

    Muss ich irgendwas initialisieren, damit ich einen zweiten SELECT absetztn kann?

    Meinen Reihenfolge:

    1) String zusammenketten
    2) Prepare
    3) decalre
    4) open
    5) fetch (bis EOF)
    6) commit

    Was fehlt?

    Booley

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928

    Close

    Hallo Booley,

    Dir fehlt der Close!

    Du hast einen seriellen Cursor definiert, d.h. es werden alle Sätze sequentiell abgearbeitet. Du hast keine Möglichkeit z.B. einen Satz zurückzugehen.
    Sind alle Sätze abgearbeitet bleibt der Cursor am Ende stehen.
    Im Gegensatz zum RPG, bei dem durch ein SetLL der Pointer neu positioniert wird, ist beim seriellen SQL-Cursor ein erneuter OPEN wirkungslos, solange der Cursor geöffnet ist.

    Also nach dem Abarbeiten aller Fetch's den Cursor mit CLOSE schliessen. Dann kann durch einen erneuten OPEN die Verarbeitung neu beginnen.

    Birgitta
    Birgitta Hauser

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

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Solange der Cursor geöffnet ist, kann das Statement nicht geändert werden.
    Ob der Commit den Cursor schließt, hängt von deinen Optionen ab (set option).

    Wenn du mit Commit=*None arbeitest, kann ein Statement leider nur 1 Mal dynamisch erstellt werden, bis das Programm / die Aktivierungsgruppe endet.
    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

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

    Danke!

    Oh mann, natürlich! *augenwiederaufmach*

    Danke!

    Booley

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 funktion
    By steven_r in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 01-06-06, 12:16
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

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