[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2005
    Beiträge
    11

    Proceduren / Bildschirmfelder in sql nicht bekannt ?

    In meiner Procedure erkennt er Bildschirmfelder nicht.
    Kennt einer dieses Phenomen ?

    PHP-Code:
    P  prGetMfb        b                                            
    D prGetMfb        pi                                           
                                                                   
    C
    /exec sql                                                     
    C
    select   bclpMfb into :wrk_Mfb from MBDAT/BCCLFPPF T01      
    C
    where    bclpFrm   = :fm_Frm   and bclpNdl = :wrk_Ndl   and 
    C+          bclpLft   = :fm_Lft   and bclpArt = :wrk_Art   and 
    C+          bclpCmdG  = :wrk_CmdG                              
    C
    /end-exec                                                     
                                                                   
    P prGetMfb        e 
    4618 C+ where bclpFrm = :fm_Frm and bclpNdl = :wrk_Ndl and 56500
    4619 C+ bclpLft = :fm_Lft and bclpArt = :wrk_Art and 56600
    4638 C+ bclpLft = :fm_Lft and bclpArt = :wrk_Art and 58100
    4652 C+ where bclpFrm = :fm_Frm and bclpLft = :fm_Lft and 59500
    5722ST1 V5R2M0 020719 SQL-ILE-RPG-Objekt erstellen BCC999 14.0
    DIAGNOSENACHRICHTEN
    MSG ID WTK SATZ TEXT
    SQL0312 30 4618 Position 31 Variable FM_FRM nicht definiert oder nicht
    verwendbar.
    SQL0312 30 4619 Position 31 Variable FM_LFT nicht definiert oder nicht
    verwendbar.
    SQL0312 30 4638 Position 31 Variable FM_LFT nicht definiert oder nicht
    verwendbar.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Der SQL-Precompiler erkennt nur tatsächlich explizit definierte Felder !
    Wenn du also I-Felder im SQL verwenden willst, musst du diese in einer DS neu definieren.

    Allerdings sollte deine Prozedur nicht auf globale Variablen verweisen sondern alle benötigten Variablen als Parameter übergeben bekommen.

    PS:
    Auch sollte die Lib im SQL nicht explizit benannt werden, sonern die Tabelle sollte über die LIBL gefunden werden. Sonst hast du später mal Probleme mit Testumgebungen oder verschiedenen Daten-Lib's.
    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 2005
    Beiträge
    11
    Dies ist eine interne Prozedur.

    Ich habe nur Probleme bei den Bildschirmfeldern, nicht bei anderen global definierten Feldern, in diesem fall hätte ich auch eine Subroutine nutzen können, rückgabeparamter werden noch eingebaut.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Dateifelder (Display/Printer) sind dem Precompiler nicht bekannt, da RPG/LE später nur die Felder generiert die auch tatsächlich verwendet werden.
    Daher musst du für SQL ALLE benötigten Felder explizit definieren.
    Leider kann der Precompiler auch keine externen Strukturen !
    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 2005
    Beiträge
    11
    Ok dann bin ich jetzt mal wieder etwas schlauer als vorher,
    vielen Dank für die schnelle Antwort.

    PS

    Ich werde dann mal statt ner Procedure ne Subroutine daraus machen.
    Gefiel mir als Prozedur zwar viel schoener aber was solls.

  6. #6
    Registriert seit
    Mar 2005
    Beiträge
    74
    Normalerweise lassen sich auch Bildschirmfelder als Parameter im SQL verarbeiten. Es gibt aber eine Macke im Precompiler, der reine Ausgabefelder nicht erkennt, wenn alle Ausgabeoperationen (write, exfmt) im free-form angegeben sind. Wenn das Programm in free-form geschrieben ist, versuche mal die Ausgabe in der traditioneller Schreibform anzugeben:

    /end-free
    write fmxxxx
    /freee

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 und OBJLCK
    By malzusrex in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 19-09-06, 11:04
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  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
  •