PDA

View Full Version : SQL unter V5R2 mit Grafic Fields & CCSID 13488



cs400_de
08-01-10, 14:17
Hallo,

endlich habe ich es per Binär Copie wie im Frorumsthema: http://newsolutions.de/forum-systemi-as400-i5-iseries/system-i-hauptforum/15276-sav-und-rst-von-v6r1-nach-v5r2.html beschrieben geschafft, die SAP Tabellen von der V6R1 Maschine auf die V5R2 Maschine zu bringen und schon beißt uns der nächste Hund.

Der CAST mit einem CHAR Zielfeld funktioniert:

SELECT cast(lnr as char(10)) mandt FROM r3emqdata/zsyn_ae
SELECT-Anweisung vollständig verarbeitet.

Aber der CAST mit einem NUMERIC Zielfeld ging anscheinend unter V5R2 noch nicht.

SELECT cast(lnr as numeric(10, 0)) mandt FROM r3emqdata/zsyn_ae
CAST von GRAPHIC in NUMERIC nicht unterstützt. SQL0461

Das heißt wir ändern jetzt doch einige Programme und casten die NUMERIC Felder nach CHAR und machen die Umsetzung hinterher im RPG. Das ist zwar alles nicht elegant, aber das erscheint uns der einfachste Weg im Doing.

Gruß

Fuerchau
08-01-10, 14:52
Cast nach Numeric geht nur über eine Funktion:

dec(trim(feld), 11, 2)

cs400_de
08-01-10, 20:19
Nur um die Verwirrung vollständig zu machen:

Von V5R2 gegen eine Remote V5R4 Datenbank ist das immer so gegangen wie im ersten Post erwähnt. Nur von V5R2 gegen eine V5R2 Datenbank nicht mehr.

BenderD
09-01-10, 08:57
bei einem remote Zugriff ist immer entscheidend was die Datenbank des Servers kann, wechsele ich da Backlevel, verschwindet Funktionalität, was ist daran verwirrend??? Eine andere Frage ist da allerdings noch, was da ein embedded SQL Compiler kann, sprich unter welchem Release ich das Programm und wann und wie ich das Package (das enthält die Server Komponenten) erstelle.

D*B


Nur um die Verwirrung vollständig zu machen:

Von V5R2 gegen eine Remote V5R4 Datenbank ist das immer so gegangen wie im ersten Post erwähnt. Nur von V5R2 gegen eine V5R2 Datenbank nicht mehr.

cs400_de
09-01-10, 09:19
Da die kopierte DB-Tabelle mit CCSID 13488 nun auf dem V5R2 Server liegt und ich keine Remote Abfrage mehr mache, sondern lokal darauf zugreife, wird das RPG auch unter V5R2 erstellt. Ebenso das Package unter V5R2 und zwar mit CRTSKQPKG auf der gleichen Maschine.

Wenn ich das auf der V5R4 Maschine gemacht habe, dann auch von der V5R2 Maschine aus allerdings mit folgenden Parametern:

CRTSQLPKG PGM(Y/X)
RDB(DB)
USER(USER)
PASSWORD(pass)

BenderD
09-01-10, 10:49
... in deinem Exempel ist der CAST in einem dynamischen SQL Statement enthalten, das zur Compiletime nicht geprüft werden kann. Zur runtime entscheidet dann die Zieldatenbank was sie kann, ist diese V5R2 kann sie Graphic nicht nach decimal casten, ist sie V5R4 kann sie und tut.
Bei V5R2 musst du den Graphic erst zum char machen und dann zum decimal, egal ob du das dann mit CAST oder mit anderen skalaren Funktionen machst.

D*B


Da die kopierte DB-Tabelle mit CCSID 13488 nun auf dem V5R2 Server liegt und ich keine Remote Abfrage mehr mache, sondern lokal darauf zugreife, wird das RPG auch unter V5R2 erstellt. Ebenso das Package unter V5R2 und zwar mit CRTSKQPKG auf der gleichen Maschine.

Wenn ich das auf der V5R4 Maschine gemacht habe, dann auch von der V5R2 Maschine aus allerdings mit folgenden Parametern:

CRTSQLPKG PGM(Y/X)
RDB(DB)
USER(USER)
PASSWORD(pass)

cs400_de
09-01-10, 12:54
Stimmt.

Gruß .