[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2009
    Beiträge
    131

    SQL0312 bei Umwandlung von SQLRPGLE mit Variablen

    Hallo,

    soabld ich eine Variable (:variablenname) in einem embedded SQL Statement verwende, bekomme ich bei der Umwandlung den Fehler SQL0312. Ist unabhängig von der SQL Anweisung, passiert z.B. beim Fetch auch.

    SQL0312 Position 38 Variable xxxxxx not defined or not usable.

    exec sql
    Declare Input cursor for select FIELD from FILE
    where FIELD2 = :xxxxxxx;

    Die Variablen sind 10stellige Character Felder.

    Hat jemand einen Tip?

    Matthias

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Ggf. kann die Variable nicht gefunden werden (copy?) oder ist vielleicht nicht eindeutig.
    Der SQL-Precompiler unterscheidet die Variablen nicht nach ILE-Funktion.
    Solltest du z.B. mehrere Prozeduren in der Quelle haben so darf die SQL-Variable trotzdem nur einmal vorkommen.
    Erst ab irgendeinem späteren Release (V7, TRx) ist der Fehler behoben.
    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
    Jun 2009
    Beiträge
    131
    Hi, danke für den Tip.

    Es liegt tatsächlich an der Felddefinition. Sie waren mit like definiert und die Umwandlung schlug fehl. Hab sie jetzt mal testweise "hard codiert" definiert und es läuft. Muß ich wohl die Basis für den like noch mal checken. Scheint nicht eindeutig zu sein.

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... dieser SQL Precompiler ist einfach ein Ärgernis!!! Nach über 10 Jahren Freeformat und qualified DS und lokalen Variablen hat es IBM immer noch nicht hingekriegt das Ding stabil auf den aktuellen Stand zu bringen. Nachdem ich immer wieder erlebt habe, dass Musterlösungen von Kursaufgaben auf Kundenmaschinen nicht laufen, weil der jeweilige PTF Stand dieses oder jenes nicht hinkriegt, habe ich mir angewöhnt:
    - alle Variablen, die in SQL Statements benutzt werden mit HAL zu prefixen (was ich sonst nie tun würde)
    - selbige alle global zu definieren
    - selbige für nix anderes zu benutzen
    -vorsichtshalber bei Serviceprogrammen ein SQL Statement in einer pseudemain abzusetzen
    damit gelingt es dem Precompiler weder die SQLCA lokal zu definieren, noch irgendeine Hostvariable nicht im korrekten scope zu finden, oder Zweifel zu reklamieren...

    D*B
    , der als "As/400 Fossil und Urgestein" noch Zeiten erlebt hat, wo man auf die Qualität "seiner AS/400" stolz sein konnte...
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Cobol und Call und Variablen
    By KingofKning in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 19-02-15, 16:42
  2. Lebensdauer von static Variablen
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 17
    Letzter Beitrag: 22-01-15, 15:23
  3. V7R1 Fehler Umwandlung SQLRPGLE
    By Peet in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 29-10-14, 07:54
  4. CL Variablen konvertieren
    By danielfeurstein in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 22-07-02, 15:19
  5. FTP AS400 zu PC, Probleme mit Umwandlung numerischer Felder
    By uweulmer in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 08-01-01, 13:43

Tags for this Thread

Berechtigungen

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