Hallo Forum,
wir haben seit heute V7 auf dem System. Es gibt einige Probleme mit unseren SQL-User Defined Functions.

Unsere SQL-Funktionen sind in der Regel so aufgebaut, dass eine SQL-Funktion (z.B. HoleName(..)) eine SQL-Procedure aufruft und diese SQL-Procedure wiederum ein RPGLE-Programm aufruft. Jetzt bekommen wir an diversen Stellen Fehler, weil nicht auf jeder Ebene SQL-Anweisungen zulässig zu sein scheinen. Das Problem scheint in der Schlüsselung "NO SQL", "READS SQL DATA" bzw. "MODIFIES SQL DATA" zu liegen. Bisher haben wir diese Werte wahrscheinlich nicht überall angegeben bzw. eventuell auch nicht korrekt angegeben. Mit V7 führt das jetzt Problemen. Kann mir jemand erklären, was diese Werte genau bedeuten bzw. ob es vielleicht einen Wert gibt, den man immer eintragen kann?

Eine Funktion, die "READS SQL DATA" geschlüsselt hat, bekommt Probleme, wenn die Procedure, die von der Funktion aufgerufen wird, "MODIFIES SQL DATA" beinhaltet. Umgekehrt schein es zu gehen. Für uns ist das unverständlich. Auf der höhereren Ebene kann ich eigentlich gar nicht wissen, wie die Tools der unteren Ebenen arbeiten und ob sie SQL Daten manipulieren. Soll man denn immer MODIFIES SQL DATA reinschreiben, damit man auf der sicheren Seite ist?

Vielen Dank im Voraus,
Dieter