[NEWSboard IBMi Forum]

Thema: SQL Trigger

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.952
    Es handelt sich sowohl in der DDS-Datei als auch in der SQL Tabelle um ECHTE Datumsfelder nicht irgendwelche numerischen oder alphanumerischen Werte?

    Normalerweise interessiert SQL das Datums-Format nicht, da echte Datumsfelder (im DDS wie in SQL Tabellen) als numerischer Wert (Scaliger No) hinterlegt sind.
    Es könnte nur sein, dass die Datumsfelder mit Format irgendwie alphanumerisch im entsprechenden/hinterlegten Format ankommen oder durch das Format ein Feldüberlauf zustande kommt.
    Es wäre interessant zu wissen, wie die Datums-Felder im Trigger ankommen (einfach mal mit LPRINTF ins Joblog schreiben).

    Was man versuchen könnte:

    1. Das Datums-Format im SET OPTION Statement auf ISO stellen: SET OPTION DatFmt = *ISO.
    2. Sollte das nicht funktionieren, versuch die Datumsfelder (insbesondere die mit europäischem Format) mit TRY_CAST in ein echtes Datum zu konvertieren
    3. Sollte das auch nicht funktionieren, versuche die Daten zunächst in ein alphanumiersches Datum zu konvertieren und danach ebenfalls mit TRY_CAST in ein Echtes Datum
    Birgitta Hauser

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

  2. #2
    Registriert seit
    Jan 2001
    Beiträge
    856
    Hallo,

    Dieter: RPG Trigger könnte ich, will ich aber nicht mehr.
    Datenkompost aufräumen bin ich voll deiner Meinung, aber mit der Altanwendung ist das immer so eine Sache ( Zeit ... )

    Birgitta: Danke für die Tipps. Aber der Trigger lässt sich nicht erstellen. Ein cast auf die Werte geht syntaktisch zwar aber auch damit lässt der Trigger sich nicht erstellen.

    Die Lösung ist leider :
    Alle Datumsfelder müssen identisch definiert sein.
    Also entweder alle mit DATFMT(*EUR) oder mit DATFMT(*ISO).

    Dann kann der Trigger erstellt werden.

    Schade
    Gruß an *ALL
    Michael

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.952
    was wäre wenn ...
    Du für die physische Datei eine SQL View erstellst und dann einen Instead Of Trigger auf die View generierst?
    Birgitta Hauser

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

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.396
    Zitat Zitat von B.Hauser Beitrag anzeigen
    was wäre wenn ...
    Du für die logische Datei eine SQL View erstellst und dann einen Instead Of Trigger auf die View generierst?
    ... die view muss read only sein (join mit Feldern aus mehreren Tables) und verhindert den update auf die vorhandene Table nicht, der dann dem Trigger egal ist.
    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/

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.952
    Zitat Zitat von BenderD Beitrag anzeigen
    ... die view muss read only sein (join mit Feldern aus mehreren Tables) und verhindert den update auf die vorhandene Table nicht, der dann dem Trigger egal ist.
    D*B
    Wo hast Du denn diese Behauptung her? Instead Of Trigger können nur auf Views angelegt werden und mit Instead Of Trigger können gejointe Tabellen upgedated werden. Soweit sind wir uns wohl einig.
    ... nur WARUM sollte ein Instead Of Trigger nicht auf einer ungejointen View implementiert werden können.
    Und auch das IBM-Beispiel ist für eine ungejointe View:
    INSTEAD OF SQL triggers

    ... und auch Mister ChatCPT kann nichts widersprüchliches finden
    Birgitta Hauser

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

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.818
    Warum kann zur Laufzeit im Trigger nicht mit Set Option Datfmt=*ISO alles vereinheiticht werden?
    In deinem Create-Auszug vermisse ich die Set Option Anweisung.
    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

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.396
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Wo hast Du denn diese Behauptung her? Instead Of Trigger können nur auf Views angelegt werden und mit Instead Of Trigger können gejointe Tabellen upgedated werden. Soweit sind wir uns wohl einig.
    ... nur WARUM sollte ein Instead Of Trigger nicht auf einer ungejointen View implementiert werden können.
    Und auch das IBM-Beispiel ist für eine ungejointe View:
    INSTEAD OF SQL triggers

    ... und auch Mister ChatCPT kann nichts widersprüchliches finden
    ... ich beziehe meine Info nicht aus ChatGPT, da ich nicht unter Halluzinationen leide und zu meiner Zeit hätten Kunden das auch nicht honoriert - jeder, wie er will und kann. Der join war nur ein Beispiel für read only, es könnten auch abgeleitete Werte oder Aggregatfunktionen sein.
    Wie auch immer, die updates kommen aus einer Altanwendung, die - welche View auch immer - nicht benutzt, sondern die Original Tablelle, die den Trigger nicht feuert.

    Mit kollegialen Grüßen

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

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.396
    ... die Altanwendung arbeitet mit einer DDS LF und merkt nicht, dass darunter eine SQL erstellte Table liegt. Immer noch nicht elegant aber besser als vorher.
    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. Antworten: 30
    Letzter Beitrag: 30-10-19, 07:36
  2. SQL Trigger
    By mk in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 24-04-18, 16:34
  3. Trigger Sql-updates
    By tarkusch in forum NEWSboard Programmierung
    Antworten: 14
    Letzter Beitrag: 10-08-17, 14:07
  4. Ermitteln des Schemas im welchen ein SQL-Trigger ausgeführt wird.
    By lch02 in forum NEWSboard Programmierung
    Antworten: 15
    Letzter Beitrag: 26-07-15, 06:15
  5. SQL-Trigger an PF
    By Sebastian85 in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 11-03-15, 08:26

Berechtigungen

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