PDA

View Full Version : SQL-Cobol und OVRDBF



kaym
05-07-02, 13:27
Wer kann helfen,
ich habe ein Cobol-Pgm welches mittels sql eine Datei liest. nun will ich mit orvdbf auf eine andere datei zugreifen und bekomme aber im joblog die fehlermeldung das eine bestimmte spalte nicht gefunden wurde. dazu sollte ich noch sagen, das bei der erstumwadlung keine datei vorhanden war, so das der pre-comp. nur allgemeine feldnamen generiert hat (format0001 usw.) was muss ich tun, damit ich dieses Programm mit beliebiegen dateien mittels ovtrdbf benutzen kann.
Wird das Programm erneut umgewandelt funktioniert alles wie es soll (incl. ovrdbf)

erstelle ich nun eine kopie der erstgenannten datei und versuche mit meinem programm (wieder mit ovrdbf) darauf zuzugreifen kommt es wieder zum o.B. ereignis.......

ach so es ist ein opm und kein ile-cobol

vielen dank.....
kaym

skipper_k
05-07-02, 13:36
Spalte nicht gefunden ist wie Aktualitätsfehler bei normaler Dateiverarbeitung zu betrachten. Ich würde vor dem Umwandeln der Pgm-Quelle einen ovrdbf auf die Datei machen, oder die *LIBL so anpassen, daß die Datei in der Suchkette gefunden wird.

MfG
Klaus
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von kaym:
Wer kann helfen,
ich habe ein Cobol-Pgm welches mittels sql eine Datei liest. nun will ich mit orvdbf auf eine andere datei zugreifen und bekomme aber im joblog die fehlermeldung das eine bestimmte spalte nicht gefunden wurde. dazu sollte ich noch sagen, das bei der erstumwadlung keine datei vorhanden war, so das der pre-comp. nur allgemeine feldnamen generiert hat (format0001 usw.) was muss ich tun, damit ich dieses Programm mit beliebiegen dateien mittels ovtrdbf benutzen kann.
Wird das Programm erneut umgewandelt funktioniert alles wie es soll (incl. ovrdbf)

erstelle ich nun eine kopie der erstgenannten datei und versuche mit meinem programm (wieder mit ovrdbf) darauf zuzugreifen kommt es wieder zum o.B. ereignis.......

ach so es ist ein opm und kein ile-cobol

vielen dank.....
kaym[/quote]

rmittag
05-07-02, 13:42
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>
nun will ich mit orvdbf auf eine andere datei zugreifen
[/quote]

hat die Datei _dasselbe_ layout ? sonst geht das nicht mit OVRDBF

<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>
damit ich dieses Programm mit beliebiegen dateien mittels ovtrdbf
[/quote]
das geht _nur_, wenn die Dateien _dasselbe_ layout haben, siehe auch Handbuch (!)

Gruß Rolf

kaym
05-07-02, 13:57
1. datei im echtbetrieb nur temporär vorhanden, wird in qtemp erstellt .....

2. Dateilayout ist immer gleich (hat mehrere Teildatein

rmittag
05-07-02, 17:02
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>
2. Dateilayout ist immer gleich (hat mehrere Teildatein
[/quote]

dann steht Aussage gegen Aussage http://www.as400-forum.de/ubb/wink.gif, denn die Maschine sagt, daß das Layout nicht gleich ist. Ohne weitere Info (z.B. wären solche Dinge wie Auszug aus Joblog, source hilfreich) könnte nur meine Kristallkugel weiterhelfen, die ist aber nicht in Betrieb http://www.as400-forum.de/ubb/frown.gif

Gruß
Rolf

Fuerchau
07-07-02, 13:49
Wichtig ist, dass die Datei zum Umwandlungszeitpunkt bereits existieren MUSS !
Der Compiler legt eine bereits compilierte SQL-Anweisung (prepared) als SQLPKG im Programm ab (überprüfbar mit CRTSQLPKG PGM(...) und anschließendem PRTSQLINF auf dieses Paket).

Später kann dann durchaus mittels OVRDBF die tatsächlich zu verwendende Datei/Teildatei angegeben werden (auch QTEMP).

Wenn das Format (Spaltenlayout) zur Umwandlung noch nicht bekannt ist, helfen nur dynamische SQL's (siehe auch Anweisungen PREPARE, EXECUTE und FETCH INTO mit SQLDA).