PDA

View Full Version : Datenumsetzungsfehler bei READ



Seiten : [1] 2 3

Peter Kosel
05-04-04, 11:53
Hallo *all

ich habe ein Problerm mit VA-RPG und einer Tabelle auf der iSeries. Und zwar bekomme ich nach einem READ die Fehlermeldung CPF5035 - Datenzuordnungsfehler für jedes Feld das NULL enthält. Was kann ich tun um das abzufangen, und trotzdem den Datensatz zu lesen ?
(Ich brauche die Felder die NULL enthalten nicht, möchte aber auch keinen VIEW erzeugen - Fremdsoftware)

Danke vorab für alle Antworten

Peter

Fuerchau
05-04-04, 13:06
Mit VARPG gar nichts !
NULL-Felder werden nur ab ILE-RPG unterstützt.

Alternativ kannst du ja auch embedded SQL verwenden.

BenderD
05-04-04, 14:32
Hallo Peter,


Hallo *all

ich habe ein Problerm mit VA-RPG und einer Tabelle auf der iSeries. Und zwar bekomme ich nach einem READ die Fehlermeldung CPF5035 - Datenzuordnungsfehler für jedes Feld das NULL enthält. Was kann ich tun um das abzufangen, und trotzdem den Datensatz zu lesen ?
(Ich brauche die Felder die NULL enthalten nicht, möchte aber auch keinen VIEW erzeugen - Fremdsoftware)

Danke vorab für alle Antworten

Peter

ich verstehe diese View Scheu nicht ganz; solange da keine Constraints dranhängen kann das allenfalls beim Release Wechsel für diese Software stören.

mfg

Dieter Bender

Peter Kosel
06-04-04, 13:15
Hallo nochmals zusammen,

ich habe testweise nun doch einen View erstellt. Obendrein habe ich embedded SQL verwendet. Neues Problem bei der Umwandlung nun :

RNV8526E Anweisung /EXEC SQL enthält Fehler: SQL0007N Das auf "" folgende Zeichen " " ist ungltig. SQLSTATE=42601

Ist dieses ebenfalls ein Zeichenumsetzungsfehler des SQL-Prozessors ?

So eine einfache Geschichte, aber ich komme nicht weiter.
Muss ich das PGM wirklich auf den Server verlegen ?

genervte Grüsse

Peter

BenderD
06-04-04, 13:35
Hallo Peter,

1. Bei der Verwendung von embedded SQL brauchst Du eigentlich keine View; dann kannst Du die Felder einfach weglassen oder mit der SQL Funktion COALESCE die Nullvalues gegen Blanks tauschen:
SELECT COALESCE(FeldMitNull, ' '),...... FROM HasteNichtGesehen...
2. Was immer das Problem sein mag, es sollte hebbar sein; lediglich Deine Angaben sind etwas dürftig, um aus der Ferne was damit anfangen zu können. Da bräuchten wir schon den Code Ausschnitt, auf den sich der Fehler bezieht.

mfg

Dieter Bender


Hallo nochmals zusammen,

ich habe testweise nun doch einen View erstellt. Obendrein habe ich embedded SQL verwendet. Neues Problem bei der Umwandlung nun :

RNV8526E Anweisung /EXEC SQL enthält Fehler: SQL0007N Das auf "" folgende Zeichen " " ist ung?ltig. SQLSTATE=42601

Ist dieses ebenfalls ein Zeichenumsetzungsfehler des SQL-Prozessors ?

So eine einfache Geschichte, aber ich komme nicht weiter.
Muss ich das PGM wirklich auf den Server verlegen ?

genervte Grüsse

Peter

B.Hauser
06-04-04, 13:39
Hallo Peter,

kannst Du mal dein SQL-Statement posten?
Dann sieht man vielleicht mehr!

Birgitta

Peter Kosel
06-04-04, 13:42
Hallo Dieter,

du hast natürlich recht, deshalb hier nun ein Code-Ausschnitt :


/END-FREE
C/EXEC SQL
C+ select * into :lsartcw1 from opusdata.lsartcw1
C+ where arartnr = :kpartnr
C+ and arvar = 0
C/END-EXEC
/FREE

Ich habe auch noch die Umwandlungsliste beigefügt. Ich habe natürlich schon selbst gelesen, aber leider nichts entdecken können :-(

Peter

Fuerchau
06-04-04, 14:02
Meinst du nicht, dass zwischen "fr" und "om" ein paar zu viele Leerzeichen stehen ?

Wenn das der Select auf die NULL-Felddatei ist, wirst du zur Laufzeit wieder das gleiche Problem haben.
Du must noch Indicatoren angeben um NULL-Felder zu erhalten !

d IndArr 5I 0 dim(nn)

select * into :lsartcw1 :IndArr ...

Peter Kosel
06-04-04, 14:10
Hallo Fürchau,
diese Lücke baut der SQL-Preprozessor in die Umwandlungsliste ein. Das kannst Du an den anderen SQL-Stmts sehen. Das scheint (scheint) nicht das Problem zu sein.

Gruss
Peter

PS.Das mit den Idikatoren und den NULL-Werten hatte ich irgendwie schon wieder vergessen :-(

B.Hauser
06-04-04, 14:19
Hallo Peter,

ich denke es liegt daran, dass Du die SQL-Namenskonventionen verwendest.

Um ganz sicher zu gehen, dass die SQL-Namenskonventionen verwendet werden, füge das folgende Statement in deine Quelle ein:

C/EXEC SQL Set Option Naming = *SQL
C/END-EXEC

Oder versuche es mit der System-Schreibweise Bibliothek/Datei.

Am besten wäre allerdings, wenn Du die Bibliothek ganz weglassen könntest.

Birgitta