Forum
Für den schlimmsten Fall hast du recht, da wirds auch gerade in COBOL schwierig.
Die kritische Stelle ist wenn du den SQL-String zusammenbastelst. Immer wenn du ein Parameter-Marker (?) reinhängst, kannst du i. A. auch die SQLDA füllen (gilt für Input-Parameter).
Ansonsten wirds etwas kompliziert. Letztendlich bist du selbst für den Speicherbereich verantwortlich, den du DB2 zur Verfügung stellst. Wie der in COBOL belegt wird ist DB2 egal. In PL/I gibts für sowas die Speicherklasse Controlled, aber ich kenne keine Entsprechung in COBOL.
Es gibt div. Möglichkeiten für dyn. SQL, insbesonsdere mit fixer oder variabler Select-Clause und Input- bzw. Output-Parameter-Marker.
Im Application Programming and SQL-Guide sind die Möglichkeiten beschrieben (allerdings extrem komprimiert). Schau dir mal die Kapitel
– Coding dynamic SQL in application programs (S. 535, bzw. ab S. 545)
– Sample COBOL dynamic SQL program (S. 931) (Adresszuweisungen und dyn. Speicherverwaltung)
an (die Seitenangaben beziehen sich auf V8-Doku).
Vielleicht kannst du mal kurz skizzieren, was du vorhast. Aber eins vorweg: Die eierlegende Wollmilchsau ist am schwierigsten!
MfG Rolf