View Full Version : SQLRPGLE
HenningSpandau
05-11-09, 15:43
Hallo an alle,
wir haben ein SQLRPGLE Programm, in dem per SQL ein Insert auf eine vorhandene Tabelle durchgeführt wird. Wenn dieses Programm auf der Befehlszeile der 5250-Sitzung aufgerufen wird, dann ist alles ok.
Das Problem ensteht dann, wenn dieses Programm vom PC per SQL aufgerufen wird. Das Programm findet die in der From-Anweisung definierte Tabelle nicht. Der Job (in Subsystem QUSRWRK) zeigt, dass die Bibliothek, in der die Tabelle liegt, eingebunden ist.
Kann mir bitte, bitte jemand helfen
Danke
Henning
Per ODBC ist die Tabellensuche für nicht qualifizierte Namen auf *SQL und nicht auf *SYSTEM.
Somit wird die Tabelle auschließlich in der Default-Lib (meist Name des Users) gesucht.
Du musst in diesem Fall entweder
a) die Tabelle qualifiziert angeben
b) die Tabelle in die Default-Lib legen
c) die Default-Lib in der ODBC-Verbindung anpassen
d) Naming auf *LIBL in der ODBC-Verbindung konfigurieren
HenningSpandau
10-11-09, 16:14
Hallo Baldur,
ich bin Deinem Rat gefolgt.
Nun bekomme ich allerdings folgende Fehler:
____________________________
1. Pufferlänge größer als Satz für Teildatei AHIERTAB.
2. Teildatei AHIERTAB nicht in Journal *N aufgezeichnet.
_____________________________
zu 1. Weitere Nachrichteninformationen
Nachrichten-ID . . . . : CPF4011 Bewertung . . . . . . : 10
Nachrichtenart . . . . : Diagnose
Sendedatum . . . . . . : 10.11.09 Sendezeit . . . . . . : 16:00:22
Nachricht . . . : Pufferlänge größer als Satz für Teildatei AHIERTAB.
Ursache . . . . : Die Dateisatzlänge für Teildatei AHIERTAB in Datei
AHIERTAB in Bibliothek PROR10DAT ist 195. Die Länge des Puffereintrags ist
208. Der Rest des Puffereintrags wird mit Leerzeichen aufgefüllt.
Fehlerbeseitigung: Falls erforderlich die im Programm angegebene Satzlänge
auf die Länge des längsten Satzes in der Teildatei ändern. Anschließend die
Anforderung wiederholen.
________________________________
zu 2. Weitere Nachrichteninformationen
Nachrichten-ID . . . . : CPF4328 Bewertung . . . . . . : 50
Nachrichtenart . . . . : Abbruch
Sendedatum . . . . . . : 10.11.09 Sendezeit . . . . . . : 16:00:22
Nachricht . . . : Teildatei AHIERTAB nicht in Journal *N aufgezeichnet.
Ursache . . . . : Die Teildatei AHIERTAB der Datei AHIERTAB aus der
Bibliothek PROR10DAT ist nicht im Journal *N in der Bibliothek *N für
COMMIT-Definition *DFTACTGRP aufgezeichnet.
-- Das angegebene Journal wird von der COMMIT-Definition *DFTACTGRP
verwendet. Wurde für das Journal *N angegeben, wird die Datei nicht
aufgezeichnet. Ist die Datei eine logische Datei, müssen alle
zugrundeliegenden physischen Dateien nicht in demselben Journal
aufgezeichnet sein, wie das die COMMIT-Steuerung erforderlich macht.
Fehlerbeseitigung: Sicherstellen, daß die geöffnete Datei aufgezeichnet
wird. Bei logischen Dateien sicherstellen, daß die zugrundeliegenden
physischen Dateien in demselben Journal aufgezeichnet werden.
______________________________
Dieses Problem ist auch nur dann vorhanden, wenn über ODBC gearbeitet wird.
Danke für die Hilfe
Henning
Auch hier gilt, Default-Einstellung ist mit COMMIT=*CHG.
In der ODBC-Konfig, COMMIT auf *NONE setzen, da deine Datei ja wohl nicht journalisiert wird.