Zitat Zitat von Tobse77
Hallo zusammen,

habe ein Problem mit einem SQLRPGLE-Modul.

Folgender Code:

C/EXEC SQL
C+ DELETE FROM GTSDRK WHERE GSLIJA = :d#JJJJ and GSLIMO = :d#MM
C/END - EXEC

Dieser Code SOLLTE bestimmte Datensätze in einer DB-Datei GTSDRK löschen. In Variable GSLIJA steht das Jahr (z. B. 2005) und in Variable GSLIMO steht der Monat ( z. B. 5).

Dies funktioniert leider nicht, denn im Debugger habe ich erkannt, dass mit F11 auf :d#MM die Nachricht "Variable nicht gefunden" erscheint. F11 auf :d#JJJJ zeigt mir den korrekten Wert 2005.
Wenn ich ohne im Programmcode weiterzugehen mit F11 auf die Variable p#MM irgendwo anders im Quellcode abfrage, so bekomme ich den richtigen Wert angezeigt (5) !?!!

Vor der Modulumwandlung, aufgrund Änderungen an ANDEREN Statements, hat dieses Statement noch funktioniert !!
Könnte ich irgendwelche Parameter beim Umwandeln vergessen haben ??

Vielen Dank für eure Hilfe


P.S.: Ich habe inzwischen auch schon das nicht geänderte Originalmodul nochmals umgewandelt ... Ergebnis: Es funktioniert auch nicht. Da liegt es wohl nahe, dass nicht meine Änderungen im Programm dazu führten, sondern meine Umwandlungsmethode, oder ??


mfG,
Tobias
Die Host-Variable heißt nicht :IrgendWas, sondern nur IrgendWas. Wenn Du mit STRDBG arbeitest, dann gib auf der Befehlezeile einfach EVAL IrgendWas an und du bekommst den Inhalt der Variablen IrgendWas angezeigt.

Ansonsten würde ich Dir raten mal nachzuschauen was in SQLCOD oder SQLSTT drin steht. (Funktioniert ebenfalls mit EVAL). Ist der SQLCOD < 0 , liegt ein SQL-Fehler vor. Ist der SQLCOD = 100 wurde kein Satz gefunden.

Ausserdem mal den alten Trick versuchen sich ab- und wieder anzumelden und die Bibliotheks-Liste prüfen. Vielleicht hast Du das Programm ja in eine falsche Umgebung umgewandelt o.a.

Birgitta