Zitat Zitat von JonnyRico
Hi,

kann es sein das ich Embedded SQL in NoMain Modulen nicht verwenden kann? Der Compiler steigt an der Stelle jedenfalls aus ;o(

Gruß

Sascha
Hallo Sascha,

Embedded SQL kann in NoMain Modulen verwendet werden. Wird nutzen dies intensiv.

Es wäre wichtig zu wissen wer aussteigt, der PreCompiler oder der RPG Compiler. Weiterhin ware es interessant die genaue Fehlermeldung oder das SQL-Statement zu sehen, das Anstoss erregt.

Mit lokalen Variablen hatte ich bisher auch noch nie Probleme.

Allerdings sollte man darauf achten, dass Cursor-Namen, innerhalb eines Modules eindeutig sind. Werden lokale Variablen in mehreren Prozeduren mit dem gleichen Namen definiert, sollte auch die Definition (Feldtyp / Länge) identisch sein. Ansonsten eindeutige Namen verwenden.

Grund dafür ist, dass der Precompiler für die API-Aufrufe eigene Felder generiert und bei gleichen Namen mit unterschiedlicher Definition ins Schleudern kommt. Die Original-Host-Variablen werden in diese Felder umgeladen.

Ein Problem gibt es allerdings in NoMain Prozeduren:
Wenn keine F oder globalen D-Bestimmungen vorhanden sind, bzw. über /INCLUDE für den Precompiler ausgeblendet werden, wird die SQLCA nicht in die Quelle kopiert. In diesem Fall hilft die Definition eines Dummy-Feldes in den globalen Definitions-Bestimmungen.

Weiterhin ist es nicht möglich, Felder, die im Procedure Interface der jeweiligen Prozedur definiert wurden im embedded SQL zu verwenden. Dafür müssen zusätzliche Variablen definiert werden.

Birgitta