[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2003
    Beiträge
    130

    embedded SQL Fehler SQL0312 beim Umwandeln

    Guten Tag,

    meine Abfrage sieht so aus:
    Code:
    exec sql                                  
     Declare csBundinfo cursor For            
            select                            
                     ROBUND        BUNDNR     
                     max(ROWDAT)   RMDAT      
                     max(ANLDT)    FMDAT,     
                     'RM'          HBESTART,  
                     0             FOLGE      
           from roheing                       
              left outer join matjour         
              on  robund = fbundnr            
           where robund = :BSBUND             
              group by robund                 
              having  max(ANLDT) is  null     
              or      max(ROWDAT) > max(ANLDT)
    Interaktiv läuft sie einwandfrei. Wenn ich das Ergebnis in eine Datenstruktur laden will:

    exec sql
    open csBundinfo;
    exec sql fetch next from csBundinfo
    into :Bundherk :ANZARRAY;

    Bekomme ich beim Umwandeln die Fehlermeldung
    "Position 30 Variable BUNDHERK nicht definiert oder nicht verwendbar."

    Die DS Bundherk habe ich extern definiert mit der Ergebnisdatei, die über die interaktive QMQRY erzeugt wurde.

    Wenn ich nur ein Feld selektiere und den FETCH in das Feld der DS ausführe, ist alles gut, nur mit der DS funktioniert es nicht.

    Hat jemand eine Idee, wie ich den Fehler vermeiden kann?

    Herzlichen Dank im Voraus

    Hubert

  2. #2
    Registriert seit
    Jun 2001
    Beiträge
    1.694
    Probier mal beim Umwandeln den Parameter
    RPG-Vorprozessoroptionen . . . . RPGPPOPT > *LVL2
    Interessante Umfrage zur Nutzung der AS/400

  3. #3
    Registriert seit
    Aug 2003
    Beiträge
    130
    Habe ich schon gemacht. Hat mich aber auch nicht weitergebracht. Aus der Umwandlungsliste:

    Code:
    BUNDHERK                         11       STRUCTURE                  
                                              108                        
    BUNDNR                           12       NUMERIC(11,0) IN BUNDHERK  
    BUNDNR                           ****     COLUMN

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    18.311
    "into :Bundherk :ANZARRAY;"
    Ist das ein Schreibfehler, denn da fehlt ein Komma?
    Falls nicht gilt folgende Regel:
    Alle Select-Felder müssein in der Struktur BUNDHERK vorhanden sein, ANZARRAY muss "INT(5) DIM(n)" als NULLIND-Array deklariert sein.
    Im Select führst du 5 Ergebnisfelder auf, deine Struktur sollte also 5 passende Felder in der Reihenfolge enthalten.
    Ist dies nicht gewährleistet, muss der Fetch die Zielfelder incl. ggf. NULL-Anzeiger einzeln angeben.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Aug 2003
    Beiträge
    130
    Hallo Baldur,

    nein, das ist kein Schreibfehler. Das ANZARRAY (war korrekt definiert) wird ohne Komma ans Ende der Anweisung gestellt. Die Felder sind in der Struktur vorhanden. Trotzdem klappt es mit der DS nicht (weiß der Geier warum). Aber Dein Tipp, die Felder einzeln anzugeben, war von Erfolg gekrönt.

    Schönes Wochenende

    Hubert

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    18.311
    Die Frage war: Ist die Struktur identisch definiert zu deinem Select?
    Wenn nicht, kann SQL das nicht auflösen.
    Der Compiler versucht je Feld der DS eine SQLnnn-Variable zu definieren und im Fetch der Reihe nach zuzuordnen, also 1. Selectfeld = 1.Strukturfeld, ....
    Und da scheint was nicht zu passen.

    Auch verstehe ich deinen Code-Auszug überhaupt nicht.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    May 2004
    Beiträge
    322
    Sollte im Select nicht hinter allen Felder ein Komma kommen ? So wie das SQL ganz oben angegeben ist, kann ich mir das nicht vorstellen, dass das interaktiv läuft.

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    18.311
    Das halte ich eher für einen Übertragungsfehler;-). Der Compiler hätte da schon gemeckert, selbst der SEU kann noch SQL.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Jun 2001
    Beiträge
    1.694
    mach einfach mal ein

    select deinfeld HUGO from Datei

    -->
    HUGO
    1
    2
    3
    ...

    oder anders gesagt ....
    er hat sich das AS gespart!
    Interessante Umfrage zur Nutzung der AS/400

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    18.311
    Das war nicht das Problem:

    select
    ROBUND BUNDNR ,
    max(ROWDAT) RMDAT ,
    max(ANLDT) FMDAT,
    'RM' HBESTART,
    0 FOLGE
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

Ähnliche Themen

  1. SQL-Fehler beim CAST
    Von Flappes im Forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 24-07-17, 15:41
  2. Sporadischer Fehler beim Kopieren vom IFS ins QNTC
    Von ChMüller im Forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 21-04-17, 10:10
  3. Fehler beim GET im FTP
    Von malzusrex im Forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 23-04-03, 18:15
  4. IPL und Fehler beim NetServer-Start
    Von lemmi im Forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 10-07-02, 13:07
  5. Fehler beim Beenden, cwblemsrv.exe
    Von Tobias im Forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 30-01-02, 12:43

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •