[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2001
    Beiträge
    127

    Post SQLRPG Angabe LIB als Paramater

    wie kann ich in einem SQLRPG die Angabe der Bibliothek parametrisieren?
    Bei Feldern geht das mit vorangestelltem :. Bei der Lib geht das nicht. Läßt man die LIB-Angabe weg, wird die LIB eingesetzt, die über die Bibliotheksliste die Datei enthält.

    C/EXEC SQL
    C+ UPDATE LIBNAME/PFNAME ...
    C/END-EXEC

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241

    Post

    SQL erlaubt leider keine Parametrierung eines Lib-/Filenamen !
    Aber: OVRDBF funktioniert auch bei SQL !
    Also vor der Ausführung des SQL's den dazu passenden OVRDBF FILE(MYFILE) TOFILE(MYLIB/MYFILE) absetzen.
    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
    Jan 2001
    Beiträge
    340

    Post

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>
    SQL erlaubt leider keine Parametrierung eines Lib-/Filenamen
    [/quote]

    bei mir schon :

    Code:
         d SqlStm          s            512a
         d Lib             s             10a   inz('QTEMP')
         d File            s             10a   inz('TEST')
    
         c/Exec SQL
         c+ declare PrepSqlStm Statement
         c/End-Exec
    
         c                   eval      SqlStm = 'UPDATE '
         c                                    + %trim(Lib)
         c                                    + '/'
         c                                    + %trim(File)
         c                                    + ' SET X1 = X2'
    
         c/Exec SQL
         c+   prepare PrepSqlStm from :SqlStm
         c/End-Exec
    
         c/Exec SQL
         c+   execute PrepSqlStm
         c/End-Exec
    Gruß
    Rolf

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241

    Post

    Man sollte doch sehr genau darauf achten, was man hier schreibt.

    Natürlich kann man SQL auch dynamisch zusammenbauen und per Prepare/Execute zur Ausführung bringen.
    Solange man das Statment auch nur 1 Mal benötigt und kein "Select" ist, mag dies ein guter Weg sein.
    Um aber performant zu sein, die Statments (man kann ja durchaus mehrere in einem Programm haben) ggf. mehrfach mit unterschiedlichen Feldinhalten verwenden möchte, wird es schon ungleich schwieriger.

    Jedesmal den String zusammenschustern, bei Feldwerten auf numerisch und Zeichen achten usw., usw.
    Um dies korrekt durchzuführen sollte man mit SQLDA's arbeiten, sonst macht man sich doch ziehmlich viel Arbeit.
    Was machst du, wenn ein Hochkomma in einem Zeichenfeld vorkommt ?
    Du brauchst dann eine Schleife und das Zeichen zu verdoppeln, da der Prepare sonst fehlschlägt (Syntaxfehler).
    Numerische Werte müssen editiert werden. Ja sicher geht das mit %EDIT, aber beim Dezimalkomma hörts schon auf. Der wird nämlich zur Compile-Zeit festgelegt.
    Schieb dann das Programm mal auf eine Maschine, die mit Dezimalpunkt arbeitet und schon wundert man sich, dass das Programm nicht läuft.

    Und was machst du z.B. beim SELECT ?
    Der Fetch funktioniert dann nur mit "FETCH ... USING DESCRIPTOR ...".

    Solange die Felder schon zur Compile-Zeit bekannt sind, nur die Lib noch variabel ist, sollte man mit fertigen SQL-Befehlen arbeiten und ggf. mit OVRDBF die Lib wechseln, auch das Arbeiten mit Teildateien ist dann möglich, versuch das mal mit nur Prepare ohne für jede Teildatei einen Alias zu erstellen.
    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

Similar Threads

  1. SQLRPG Debug
    By olbe in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 24-07-07, 14:48
  2. SQLRPG
    By muadeep in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 28-06-05, 13:17
  3. SQL Select Angabe ausdrucken
    By Herbie in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 03-02-05, 14:33
  4. fehlende Lib qsql
    By delphix in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 03-12-01, 18:20
  5. CPYTOPCD mit Angabe einer Translate Table
    By jbie in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 11-09-01, 10:21

Berechtigungen

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