[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2012
    Beiträge
    360

    embedded sql update

    Hallo,

    mit dem embedded Sql kann man ja einzelne Felde updaten aber ist es auch möglich
    das Update mit einer Datenstruktur durchzuführen?

    Ich hätte es mal erfolglos so versucht:
    Code:
    FZP1KSTP   UF A E           K DISK                          
    D MyDsZP1KSTP   E DS                  ExtName(ZP1KSTP)      
                                                                
          EXEC SQL                                              
            UPDATE                                              
            SET ZP1KST = :MyDsZP1KSTP                           
            FROM ZP1KSTP                                        
            WHERE ZP1FINR = 0                                   
              AND ZP1PENR = 8129                                
              AND ZP1GRNR = 15;
    Dank im Voraus

    TARKI

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    set row = :MyDS sollte wohl gehen

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Apr 2012
    Beiträge
    360
    Dankeschön und noch ein schönes Wochenende.

  4. #4
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Hallo,
    das ist ja eine sehr interessante Sache. Geht das nur mit UPDATE, oder auch mit INSERT? Wenn ja, mit welcher Syntax?

    Dieter


    Hab's gerade selber gefunden. Die Syntax ist wohl folgende:

    exec sql INSERT INTO TESTFILE VALUES :myDs;

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Beim Insert gibt es 2 Varianten:

    insert into mytable (f1, f2, ...) values (...)
    insert into mytable values(Alle Spalten)

    Da embedded SQL bei Angabe einer DS diese automatisch in Einzelfelder expandiert reicht also ein
    insert into mytable values(: MyDS)

    Zu Bedenken ist allerdings beim Update mit "row = " oder beim Insert ohne Feldliste, dass bei Änderung der Tabelle zwingend ein Recompile erforderlich ist da sonst der SQL fehlschlägt.
    Ein dynamisches Redesign einer Tabelle ist damit unmöglich.

    Gerade wenn man mit SQL arbeitet ist es ja sehr einfach eine Tabelle zu erweitern. Dabei kann man dann auch gleich Defaultwerte festlegen.
    Bei DDS-Dateien hat uns das ja auf Grund Levelchecks massiv behindert.

    Warum also warum die Vorteile von SQL durch obige Konstrukte aufgeben nur weil man etwas schreibfaul ist?
    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

  6. #6
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Vielen Dank für den Hinweis auf das Recompile. Das ist natürlich wirklich ein Manko. Aber es ist natürlich viel weniger Code. Wir arbeiten sehr viel mit extern beschriebenen Datenstrukturen, die wir als Parameter durch die Programme reichen. Wenn sich eine strukturelle Änderung ergibt, müssen wir sowieso durchkompilieren.

    Dieter

Similar Threads

  1. SELECT..FOR UPDATE/Embedded SQL
    By KB in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 28-04-16, 14:42
  2. EMBEDDED SQL in RPG
    By Ludger Muhmann in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 30-07-02, 09:49
  3. Datenabbildungsfehler mit embedded SQL
    By Joshua in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 11-04-02, 09:42
  4. Embedded SQL
    By Stefan_R in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 12-10-01, 09:47
  5. Embedded SQL/ falsche Datentypen
    By KB in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 21-08-01, 10:31

Berechtigungen

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