Hi,

ob das jetzt besser ist... von modularer Programmierung haben die Verwickler dieses Pre-Compilers immer noch nix begriffen. Variable müssen innerhalb ihres Gültigkeitsbereiches eindeutig sein, was im Rest der Welt gilt, hat keine Bedeutung zu haben. Alles andere zwingt doch dazu die Variablen global mit eigenem Prefix zu definieren.
Das liegt halt daran, dass der Pre-Compiler keine Ahnung davon hat, was in der Quelle überhaupt abgeht! Der Pre-Compiler sucht nur nach SQL-Statements, kommentiert die aus und ersetzt die durch API-Aufrufe. Da die Suche nur sequentiell erfolgt, muss auch der DECLARE physisch vor dem OPEN stehen, oder seit Release V5R4 der SET OPTION vor allen anderen SQL-Statements. (Mehr wird der Precompiler wahrscheinlich auch nie leisten!) Es ist immerhin schon ein Vorteil, dass der Pre-Compiler akzeptiert, dass die gleiche Variable mehrfach definiert werden kann.

Außerdem, denke ich ist die Gefahr, dass die gleiche Host-Variable mehrfach, aber unterschiedlich definiert ist, ist relativ gering ist. Wenn ich die Artikel-Nr. oder Bestell-Nr. lokal (mit dem gleichen Namen) definiere, verwende ich eigentlich immer die gleiche Definition. Einmal die Artikel-Nr. 20A und das nächste Mal 15P 0 zu definieren, kann ja nur zum Chaos führen. Ok, es gibt Situationen, in denen man u.U. den gleichen Namen mehrfach mit unterschiedlicher Definition oder Länge verwendet, z.B. irgendeinen String oder ein Rechenfeld, aber doch eher selten.

Ansonsten kann ich mit dieser Rückänderung ganz gut leben.

Birgitta