Zitat Zitat von Fuerchau Beitrag anzeigen
Das würde beim Compile bereits auffallen und wer schreibt die DS noch selber, wenn ich einen Bezug zur Datei machen kann?
Nicht zwangsläufig! Solange die Spalten-Definitionen (in der Reihenfolge) übereinstimmen bzw. compatibel sind und lediglich weniger Ausgabe-Felder vorhanden sind als ausgewählt, wird das Programm erstellt.

SQL0030 (Anzahl der Host-Variablen geringer als die Ergebnis) hat Severity 0 und verursacht somit keinen Fehler.
Im (RPG) Programm selber wird lediglich eine Warnung mit SQLCODE +30 ausgegeben. Die Daten werden jedoch korrekt ausgegeben.
... das einzige ist, die störende Meldung
und ggf. tatsächlich eine Beendigung der Verarbeitungsschleife, weil der Programmierer mal wieder (entgegen aller Empfehlungen) auf SQLCODE = 0 oder SQLSTATE = 00000 prüft.

Im Übrigen kommen solche "Fehler" auch häufig vor, wenn 2 Tabellen verjoint werden und alle Felder mit SELECT * ausgewählt werden und der Programmierer sich entscheidet, dass nur die Daten der ersten Datei benötigt werden und im Fetch nur die Datenstruktur der ersten Datei angegeben wurde.

SELECT * sollte man m.E. grundsätzlich vermeiden und immer nur genau die Spalten auswählen die man auch wirklich benötigt, auch wenn man wie Dieter für jede Abfrage eine View baut.
Vielleicht braucht man die gleiche View doch mehrfach und möchte dann irgendwann Spalten hinzufügen ...

Birgitta