Hallo Chris,

ich nutzte SQL hauptsächlich und in hohen Maße für Abfragen, also Listenerstellung oder Subfile-Füllungen oder wenn es um Summenberechnungen, Gruppenbildung etc. geht. Es geht wesentlich fixer und flexibler als mit READ-Schleifen, da man hier einfach mal die Sortierungen auswechseln kann oder einfach eine Tabelle zur Abprüfung per JOIN mit hinzunehmen kann. Ich kann mir Listenerstellung ohne SQL nicht mehr vorstellen.

Wartungsprogramme für Einzelsätze schreibe ich weiterhin mit CHAIN, UPDATE, WRITE-Statements weil ich hier die Zugriffssteuerung (Satzblockierung etc.) einfacher finde als mit SQL. Ich sehe auch kein Problem im mixen der beiden Varianten.

Wichtig für den Einsatz von SQL finde ich ein gutes Datenbankdesign, vornehmlich bei der logischen Dateien bzw. Indizies. So sollten in logischen Dateien keine Satzauswahlen enthalten sein (COMP etc.) da diese Dateien dann nicht von SQL verwendet werden.

Fang einfach mal an, kleine und einfache Programme auf SQL umzustellen, auch wenn es nur die Ersetzung eine READ-Schleife ist. Formuliere im SELECT die Felder, die Du benötigts. Verwende nicht SELECT * mit der Übergabe in eine externe Datenstruktur die auf die ursprüngliche Datei definiert ist. Der Aufwand erscheint für eine einfach READ-Schleife hoch, doch die Zusatzvorteile, die später durch Verwendung zusätzliche SQL-Elemente hinzukommen, machen das allemal wieder wett.
Versuche dann nach und nach auch Abfragen auf andere Dateien in der SQL-Abfrage mit einzubinden (z.B. Lesen einer Auftragsdatei mit Nationsabfrage im Kundenstamm)

Wenn Du einige Programm umgestellt hast, lese mal die IBM-Handbücher zu SQL auf der iSeries von vorne bis hinten durch, um mal einen Überblick zu bekommen, was man alles mit SQL machen kannst. Auch wenn das Mühsam ist, der Schub für die Programmentwicklung ist enorm...

Viel Spass...
Martin Withake