PDA

View Full Version : Fehler SQL0751 im Trigger-PGM



Winnilein
30-08-07, 10:47
Hallo Gemeinde,
ich will die Erfassung von Artikelpositionen in unserer Auftragsverwaltung anhand eines Triggers protokollieren.
Da ich gerne die verfügbare Menge für den eingegebenen Artikel in unserem Zentrallager mit protokollieren wollte, bekomme ich jetzt beim Zugriff auf unseren Lagerrechner(/390 Host) leider immer den SQL0751 Fehler im Triggerprogramm.
Weis jemand Rat?
Gruß
Winni

mkasmika
30-08-07, 11:32
Hallo,

der SQL Fehler sagt:
SQL-Anweisung &1 nicht zulässig.

Da müssen also noch mehr Meldungen sein.

Gruss
Michael

Winnilein
30-08-07, 11:50
Ja Sorry!
SQL0751.....
SQL-Anweisung RELEASE in einer gespeicherten Prozedur, einer
benutzerdefinierten Funktion oder einem Auslöser nicht zulässig.
COMMIT beendet.
SQL-Anweisung DISCONNECT in einer gespeicherten Prozedur, einer
benutzerdefinierten Funktion oder einem Auslöser nicht zulässig.
SQL-Anweisung CONNECT in einer gespeicherten Prozedur, einer
benutzerdefinierten Funktion oder einem Auslöser nicht zulässig.

Fuerchau
30-08-07, 12:04
Wie die Meldungen schon sagen:
Der Trigger darf selber weder einen eigenen Connect noche Commit/Rollback oder Release verwenden.
Ein Trigger wird im aktuellen Commit-Zyklus aktiviert und darf keine Verbindung zu einer weiteren DB öffnen sondern arbeitet grundsätzlich nur in der aktuellen DB.

Wohin willst du die Daten denn schreiben ?

Winnilein
30-08-07, 12:21
Auftragsdatei wird auf der AS erfasst.
Protokolldatei wird auf der AS geschrieben, mit Infos aus der Host-Datei, diese liegt in der DB2/UDB auf einer IBM/390. Und der Zugriff läuft mit SQL.
Oder geht eine DDM-Definition auf mit Host Dateien???

Fuerchau
30-08-07, 15:00
DDM wäre eine alternative, allerdings unterstützt diese keinen KEY, kann also nur sequentiell verarbeitet werden.

Ich würde nur in die Protokolldatei schreiben und die fehlenden Informationen in einem sparaten Batchprogramm nachtragen.
Dieses kann ja alle paar Sekunden nach neuen Sätzen suchen und dann den Hostzugriff machen.
Dies ist allemal besser, da die Hostverbindung ja auch mal gestört werden könnte und der Trigger dann das Schreiben nicht erlauben dürfte.
Ich denke, dann hast du eine Problem.

BenderD
31-08-07, 15:34
Hallo,

Bei Verwendung einer DataQ und einem entsprechenden Listener auf der Q vermeidet man das HkG Prinzip.

mfg

Dieter Bender


DDM wäre eine alternative, allerdings unterstützt diese keinen KEY, kann also nur sequentiell verarbeitet werden.

Ich würde nur in die Protokolldatei schreiben und die fehlenden Informationen in einem sparaten Batchprogramm nachtragen.
Dieses kann ja alle paar Sekunden nach neuen Sätzen suchen und dann den Hostzugriff machen.
Dies ist allemal besser, da die Hostverbindung ja auch mal gestört werden könnte und der Trigger dann das Schreiben nicht erlauben dürfte.
Ich denke, dann hast du eine Problem.

Winnilein
05-09-07, 08:23
DDM wäre eine alternative, allerdings unterstützt diese keinen KEY, kann also nur sequentiell verarbeitet werden.

Ich würde nur in die Protokolldatei schreiben und die fehlenden Informationen in einem sparaten Batchprogramm nachtragen.
Dieses kann ja alle paar Sekunden nach neuen Sätzen suchen und dann den Hostzugriff machen.
Dies ist allemal besser, da die Hostverbindung ja auch mal gestört werden könnte und der Trigger dann das Schreiben nicht erlauben dürfte.
Ich denke, dann hast du eine Problem.

Den frei verfügbaren Lagerbestand kann ich leider nicht zu einem späteren Zeitpunkt protokollieren ;)

Habe jetzt eine DDMF zur entfernten logischen Datei definiert. Key-Zugriff funktioniert einwandfrei:D

Gruß
Winni