-
Da doch wohl dieser Vorgang als CLP bereits vorliegt, müsste dieser doch ebenso funktionieren?
Was dir nur im DCL-F fehlt ist der RENAME des Fileformats.
Inputfelder werden automatisch deklariert, allerdings ist hier eine Umbenennung erforderlich:
dcl-f ..... rename(MYFILE:MYFILEF);
dcl-ds FileDS extname('MYFILE');
MyFld extfld(MYFILE);
end-ds;
-
... warum so umständlich?
CREATE TABLE FOO
(
FOO CHAR (20 ) NOT NULL WITH DEFAULT
, FOFO CHAR (10 ) NOT NULL WITH DEFAULT
)
rcdfmt poo
oder einfach per SQL lesen/schreiben. Rename war einmal!
D*B
-
SQL hatte ichja oben schon mal vorgeschlagen, scheint wohl aber kein Thema zu sein.
-
Ich habe das ganze jetzt versucht mit SQL zu lösen.
exec sql setOptionnaming=*sys, commit = *none;
PGM1
exec sql
create table bib.wrkfle1(
...
);
exec sql
insert into bib.wrkfle1
values(...);
PGM2 nach der Verarbeitung wird zum Schluss eine Unterprozedur aufgerufen
exec sql
drop table bib.wrkfle1
In der Theorie(ACS) funktioniert dieser drop Befehl.
In der Praxis leider nicht, obwohl er im Debug aufgerufen wird.
-
Prüfe nach dem Drop Statement den SQLSTATE oder den SQLCODE. Beide Felder sind in der SQL Communications Area (SQLCA) hinterlegt.
Die SQLCA wird vom SQL Precompiler automatisch in das Programm integriert. Bei jedem SQL-Statement, das zur Laufzeit ausgeführt wird, wird die SQLCA aktualisiert.
Die Felder SQLSTATE und SQLCODE kannst Du wie andere Variablen in Deinem Programm verwenden oder den Inhalt beim Debuggen anzeigen.
Ein negativer SQLCODE oder ein SQL Status, der weder mit 00, noch 01 noch 02 beginnt signalisiert einen SQL Fehler.
Der SQLCODE oder der SQLSTATE sollte übrigens nach jedem SQL Statement geprüft werden und im Fehlerfall entsprechende Aktionen ausgeführt werden.
Birgitta
-
Positionierung der Prozedur war falsch, da die Datei noch geöffnet war..
Jetzt funktionieren die Programme, CLs´ und der Ablauf.
Ein Dankeschön an alle Antworten, die mich enorm weitergebracht haben
und mir die Möglichkeit bieten mich mit anderen Wegen zu beschäftigen.
----------------------------ERLEDIGT----------------------------
-
Zitat von JGreim
Ich habe das ganze jetzt versucht mit SQL zu lösen.
exec sql setOptionnaming=*sys, commit = *none;
PGM1
exec sql
create table bib.wrkfle1(
...
);
exec sql
insert into bib.wrkfle1
values(...);
PGM2 nach der Verarbeitung wird zum Schluss eine Unterprozedur aufgerufen
exec sql
drop table bib.wrkfle1
In der Theorie(ACS) funktioniert dieser drop Befehl.
In der Praxis leider nicht, obwohl er im Debug aufgerufen wird.
... das ist ohnehin schräges Design und funzt nicht wirklich wenn:
- das Programm zweimal gleichzeitig läuft
- das Programm zwischendrin abkackt
außerdem kannst Du keine externe Datenstruktur nutzen, da die Datei zur Compiletime nicht da ist.
Mach das doch einfach so, wie in einem vorhergehenden Beitrag von mir empfohlen.
D*B
-
Das macht dem Compiler inzwischen gar nichts mehr, da er Namen, die zu diesem Zeitpunkt nicht existieren, für globale Variablen hält. Erst zur Laufzeit erfolgt die tatsächlich Prüfung.
Ausnahmen sind Namen die explizit erkannt werden wie z.B. insert into (f1, f2, ) bzw. update table set f1 = ...
Ein "select abc from myfile" ist dem compiler erst mal egal.
Das ist der Nachteil seit der Einführung globaler Variablen, dass der Compiler Schreibfehler nicht mehr meldet und Fehler erst zur Laufzeit festgestellt werden.
Schöne neue Welt....
-
Zitat von Fuerchau
Das macht dem Compiler inzwischen gar nichts mehr, da er Namen, die zu diesem Zeitpunkt nicht existieren, für globale Variablen hält. Erst zur Laufzeit erfolgt die tatsächlich Prüfung.
Ausnahmen sind Namen die explizit erkannt werden wie z.B. insert into (f1, f2, ) bzw. update table set f1 = ...
Ein "select abc from myfile" ist dem compiler erst mal egal.
Das ist der Nachteil seit der Einführung globaler Variablen, dass der Compiler Schreibfehler nicht mehr meldet und Fehler erst zur Laufzeit festgestellt werden.
Schöne neue Welt....
... der e ds (dcl irgendwas) geht aber immer noch schief...
D*B
PS: @schöne... wenn sich halt Dilletanten mit der Erfindung "neuer" Programmiersprachen beschäftigen...
Similar Threads
-
By Wavum in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 12-07-16, 10:27
-
By Gimli in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 11-03-03, 10:16
-
By DEVJO in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 05-03-03, 07:18
-
By Gimli in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 04-03-03, 09:47
-
By Gimli in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 03-03-03, 10:23
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks