PDA

View Full Version : VARPG und SQL



Joe
13-05-03, 13:31
Hallo Forum.

Ich möchte mit VARPG und Embedded SQL eine Tabelle verwalten die entweder auf dem Client in DB2.V7 oder auf der AS400 angelegt ist.

„DB2DB“ ist der DB2-Datenbankname in den Erstellungsoptionen.
„Datei“ ist der Tabellenname im Programm.

Anweisung:

C/EXEC SQL
C+ update Datei set Feld1 = :Feld1, Feld2 = :Feld2 usw.

Bei Umwandlung auf DB2.V7 funktioniert die Umwandlung und der Tabellen-Update.
Hier existiert die Tabelle in der Datenbank „DB2DB“

Bei der Umwandlung für die AS400 ändere ich den Datenbanknamen
in den RDB-Namen der AS400 : AS400DB
Der Compiler bringt folgende Warnung:

*RNV8531 Anweisung /EXEC SQL enthält Warnung:
SQL0204N
"AS400DB.Datei" is an undefined name. SQLSTATE=01532

Die Umwandlung funktioniert nur, wenn ich in der Update-Anweisung den Dateinamen
Qualifiziert angebe:
update Bibliothek.Datei..

Was mache ich falsch? Wer hat hier bereits Erfahrungen gesammelt?

Gruss Joe

Fuerchau
13-05-03, 14:42
Die vollständige Qualifizierung einer Tabelle auf der AS/400 ist "DBName.Collection.Table". wobei der Compiler anscheinend den DB-Namen automatisch ergänzt.
Versuch mal ob es den Parameter "Default-Collection" bei der Compilierung gibt.

Anscheinend unterstützt DB2 nicht mehrere Collections, so dass eine Qualifizierung nicht nötig ist.

Ansonsten prüfe mal, ob bei der DB2 der Collection-Name angebbar ist, dann halte diesen gleich mit einem Bibliotheksnamen und gib diesen qualifiziert an.

Ansonsten halte halt 2 verschiedene SQL-Befehle je nach Verbindungsart vor (ggf. als Copmpile-Directive #ifdef .. #else .. #endif