Hallo zusammen,

habe in einem Dialog-Programm ein dynamisches SQL-Insert-Statement eingebaut, welches dem Anwender erlaubt per Auswahl bestimmte Datensätze zu selektieren und diese in eine Ausgabedatei schreibt.

Die Benutzerauswahl wird in eine Variable SelectStmt gespeichert, diese via

Exec SQL
Prepare Schreiben from :SelectStmt;

und anschließend via

Exec SQL
Execute Schreiben;

ausgeführt.

Da die Aufbereitung im Dialog und somit in einer Schleife (bis das Programm verlassen wird) durchgeführt wird, kann es vorkommen, dass ein Benutzer (z. B. bei versehentlicher Falscheingabe und Korrektur) mehrmals eine Selektion vornimmt.

Mein Problem hierbei ist nun, dass stets nur das erste Prepare beim Execute verwendet wird. Sämtliche Änderungen in Variable SelectStmt und anschließendem Prepare bleiben unberücksichtigt.

An was kann dies liegen?
ODPs?

Habe bereits eine Testprozedur mit Erstellung eines Alias geschrieben, um die mehrmalige Verwendung gleichlautender Prepare-Namen zu verifizieren. Auch bei mehrmaligem geänderten SelectStmt, anschließendem Prepare auf gleichen Statement-Namen und Execute funktioniert es.
Von daher würde ich "falsch" gesetzte Optionen beim Kompilieren ausschließen wollen.

Vielen Dank für jegliche Hilfestellung und Denkanstöße ;-)