PDA

View Full Version : SQL im Free-Format, SET OPTION für DBGVIEW



Peet
13-03-09, 08:39
Hallo zusammen,
zu dem o.a. Thema habe ich zwar jede Menge Einträge, auch hier, gefunden, bin aber leider trotzdem nicht weiter gekommen.

Folgendes Problem
---------------------
Ich habe in einem Free-Source (SQLRPGLE) SET OPTION für
verschiedene Parameter (commit usw.) definiert, alles prima,
wird erfolgreich umgewandelt und läuft auch.
ABER
SET OPTION dbview = *source lässt schon SEU nicht zu.
Obwohl im SQL-Reference V5R4 der IBM steht, dass SET OPTION auch für DBGVIEW geht !

Weiss jemand von Euch, wie ich DBGVIEW in SET OPTION erfolgreich definieren kann ?

Betriebssystem ist z.Zeit V5R4.

Und kann man DBGVIEW auch für RPGLE-Programme
im Source definieren ? (H-Zeile ?)

Vielen Dank im Voraus !
Peet

B.Hauser
13-03-09, 08:58
SET OPTION dbview = *source lässt schon SEU nicht zu.
Obwohl im SQL-Reference V5R4 der IBM steht, dass SET OPTION auch für DBGVIEW geht !


Es steht aber auch in der SQL-Referenz, dass die Option DBGVIEW nur für SQL-Programmierung (also für Stored Procedures, User Defined Functions und Trigger, die mit reinem SQL erstellt wurden) zulässig ist.

Bei der SQL-Programmierung ist die Angabe erforderlich, wenn der reine SQL-Code gedebuggt werden soll und nicht der konvertierte C-Code.

Bei embedded SQL ist debugging auch ohne die Angabe DBGVIEW möglich, sofern im CRTBNDRPG-Befehl und/oder im CRTRPGMOD DBGVIEW auf *SOURCE oder *LIST steht.

Sollte in diesen beiden Befehle DBGVIEW auf dem Default-Wert *STMT stehen, kann DBGVIEW im SET OPTION-Statement über COMPILEOPT gesetzt werden.



Exec SQL Set Option COMPILEOPT = 'DBGVIEW(*SOURCE)';

Vielleicht noch eine Anmerkung zum Set-Option-Statement unter V5R4:

Es darf nur eine Set-Option-Statement in der Quellen hinterlegt werden.
Die Set Option-Anweisung muss physisch das 1.SQL-Statement in der Quelle codiert werden. (Das SET OPTION-Statement in der *INZSR, die am Ende der Quelle steht ist nicht zulässig.)


Birgitta

Peet
13-03-09, 09:11
Hallo Birgitta,
ja das mit dem SET OPTION als erstes SQL-Statment, das
habe ich auch gemerkt, leider musste ich etwas "wühlen", um
dahinter zu kommen, die Doku liest man ja erst dann, wenn
nichts mehr geht. :o

Ansonsten, wie immer, Vielen Dank !
Peet

Fuerchau
20-03-09, 15:50
@Birgitta

Exec SQL Set Option COMPILEOPT = 'DBGVIEW(*SOURCE)';

wirkt nicht wie erwartet.
1. Es wird die Zwischenquelle des SQL-Precompilers verwendet.
2. Wandelt man im Batch oder meldet sich wieder ab, istdie Quelle nicht verfügbar.

Gebe ich den Parameter bei CRTSQLRPGI direkt an, wird die Originalquelle verwendet und das Programm ist auch später noch zu debuggen.