[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2006
    Beiträge
    68

    Triggersyntax erzeugt nur Fehler

    Hallo Forum!!

    Ich wendet mich heute mit einer Trigger-frage an euch:

    Wir wollten einen BEFORE-INSERT-Trigger erstellen, welcher vor dem Einfügen neuer Daten in die Tabelle AUFTRAG nachschaut, ob die neu eingefügten Daten der Spalte "KUNDENNUMMER" in der Spalte "KUNDENNUMMER" in Tabelle KUNDE zu finden ist (schön wäre eine Fehlermeldung, das dieser Kunde noch nicht angelegt ist, aber mit Print '' geht das anscheinend nicht).

    Ist diese Kundennummer also noch nicht angelegt, so soll in eine neue Spalte "MENGE" der Wert "XXXXX" eingegeben werden - und das natürlich bei jedem zutreffenden Datensatz.

    Unten sind 2 Versionen, mit denen wir es probiert haben - beide gehen aber leider nicht. Es kommen verschiedene Fehlermeldungen, meist, weil ein Befehl jetzt nicht erwartet wurde, wird er jedoch verändert oder gelösche, entsteht der nächste Fehler...irgendwie kommen wir nicht weiter...wäre schön,wenn uns wer helfen könnt.


    create trigger Test.Test1 before insert on Test.auftrag
    referencing new as new_row
    for each row
    select * from Test.kunde
    where Test.kunde.kundennummer = new_row.kundennummer
    begin
    SET NEW_ROW.Menge = 'XXXXX';
    end

    *******************************
    create trigger test.Test1 before insert on test.auftrag
    referencing new as new_row
    for each row
    if
    ((select count(*) from test.kunde
    where test.kunde.kundennummer = new_row.kundennummer) > 0)
    then
    SET NEW_ROW.Menge = 'XXXXX';

    Ich nerve zwar, aber ich lerne!

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.875
    Hallo,

    Du rätst Dir eine Syntax zusammen, die bei anderen Datenbanken vielleicht funktioniert, aber nicht mit der DB2 UDB for iSeries.

    Ich empfehle Dir Dich mal näher mit den folgenden Online-Bücher zu beschäftigen:
    1. SQL Reference
    2. Modernizing IBM eServer iSeries Application Data Access - A Roadmap Cornerstone
    3. Stored Procedures, Triggers and User Defined Functions on DB2 Universal Database for iSeries

    Ansonsten solltest Du doch mal in Betracht ziehen einen oder mehrere SQL-Kurse speziell für DB2 UDB for iSeries zu belegen.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    Registriert seit
    Jan 2006
    Beiträge
    68
    Es liegt nicht daran, das ICH das nicht in Betracht ziehen würde; sondern ehr daran das mein Chef dies nicht tut. Lohnt sich halt nicht für einen Azubi, der das Unternehmen eh verlässt.

    Desweiteren sind die Sourcen nicht von mir sondern aus der Feder des einzigen Kollegen, der hier mit SQL auf der iSeries arbeitet (wen soll ich fragen, wenn der nicht weiter weiß?).Ein weiterer Kollege arbeitet auf dem SQL-Server, aber die Syntaxunterschiede sind nicht wenige.

    Trotzdem danke.
    Ich nerve zwar, aber ich lerne!

Similar Threads

  1. Os400 Fehler ?
    By Robi in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 04-11-06, 16:02
  2. Fehler: SQL0302 Umsetzungsfehler / ado
    By Asti in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 29-08-06, 13:24
  3. Fehler im SQL bzw. Joblog
    By GraueEminenz in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 10-07-06, 11:58
  4. ODBC Verbindungs Fehler (-7778)
    By Hubert in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 10-05-06, 09:41
  5. STRPCCMD ohne STRPCO erzeugt keinen Fehler?
    By AndreasH in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-06-04, 08:48

Berechtigungen

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