Hallo Forum,

seit der Umstellung unserer Maschiene von V5R4 auf V7R1 haben wir folgendes SQL-Problem:
Wir haben DDS-beschriebene Datenbanken mit logischen Dateien, die bestimmte Sätze auswählen, z.B.:
A K ARTNR
A S FINR VALUES(02)
A O ALL
Diese logischen Dateien werden im RPG mit Chain, Read usw. genutzt. Dies soll in Zukunft durch SQL abgelöst werden. Neuere Programme nutzen daher schon SQL mit Update, etc. Es sieht so aus, als ob SQL versucht, die logischen Dateien zu nutzen, obwohl diese nicht alle Sätze bereit halten:

UPDATE EANP SET PREIS = 0 WHERE FINR = 2 AND ARTNR = 100096
findet und updatet den richtigen Satz.

Ein danach ausgeführtes
UPDATE EANP SET PREIS = 0 WHERE FINR = 6 AND ARTNR = 100096
sagt zwar, dass es ein Update gemacht hat, aber der richtige Satz enthält noch den alten Wert.

Wir vermuten jetzt, dass der SQL-Optimizer die logische Datei von oben nutzt, in der gar nicht alle Sätze zu sehen sind. Daher wird wahrscheinlich der Satz aus der ersten Abfrage erneut geupdatet.

Leider sind die logischen Datei nötig, da von vielen Programmen genutzt (Aufwand zu groß). Ändern der SQL-Abfragen wäre einfacher, da weniger Programme. Oder kann man am SQL-Optimizer was drehen?

Habt Ihr eine Idee?

Gruß,
Frederik Rissling