PDA

View Full Version : Datenumsetzungsfehler bei READ



Seiten : 1 2 [3]

B.Hauser
06-04-04, 19:30
Hallo Michael,

ein select ... into kannst Du dann verwenden, wenn sicher ist, dass du genau einen Ergebnis-Satz erhälst.
Liefert das Select-Statement mehr als einen Satz, wird der erste Satz in die Ausgabe-Felder übernommen und der SQLCOD auf -811 gesetzt.

Der Select ... into beinhaltet also Declare, Open, Fetch und Close.
So kann z.B. die nächste laufende Nr. in einem einzigen SQL-Statement ermittelt werden.



C/EXEC SQL
C+ Select Coalesce(Max(LfdBeh) + 1, 1)
C+ into :LfdNr
C+ from MyFile
C+ where Firma = :ParmFirma
C+ and Sendung = :ParmSendung
C/END-EXEC


Alternativ kann man auch ein Set-Statement verwenden:
Werden mehrere Sätze zurückgegeben, gilt das gleiche wie beim Select ... into


C/EXEC SQL
C+ Set :LfdNr = Select Coalesce(Max(LfdBeh) + 1, 1)
C+ from MyFile
C+ where Firma = :ParmFirma
C+ and Sendung = :ParmSendung
C/END-EXEC


Birgitta

BenderD
06-04-04, 20:05
Hallo Peter,

bevor ich VA RPG von der Platte löschen würde (verdient wär's ja), würde ich nochmal versuchen die Datenstruktur anders als die Datei zu benennen, von wegen der Pferde und der Apotheke...

mfg

Dieter Bender


Hallo Dieter,

diese Versuche habe ich auch schon unternommen. Deklaration an eine andere Stelle ziehen, SQL-Statement an eine andere Stelle ziehen, alles bislang vergeblich...

Peter

Peter Kosel
07-04-04, 07:15
@Dieter,

ich weiss, das Du ein ausgesprochener Fan von Java bist. Mir dagegen sträuben sich die Nackenhaare wenn ich an das langsame Java denke. Ich bekomme schon eine Gänsehaut wenn ich an die Performance eines iSeries Navigators denke oder die Steuerzentrale von DB2 oder Eclipse oder oder...

Meckern hilft mir da im moment nicht weiter, und plattformunabhängig muss ich auch nicht sein. Es sollte halt quick and dirty sein.

Nun ja, ich werde entweder nun ein normales Read verwenden mit den Möglichkeiten Datenumsetzungsfehler zu vermeiden, oder das ganze doch auf die iSeries verschieben. Dort würde ich übrigens niemals Java machen (Momentan).

Nichts für ungut, und vor allem vielen Dank für die zahl- und hilfreiche Unterstützung.

Peter

BenderD
07-04-04, 09:19
Hallo Peter,

nur zur Info: ich bin beruflich völlig emotionslos und damit weder Fan von irgendwas, noch Hasser von irgendwas, was mich zuweilen für den ein oder anderen suspekt macht.
Was mich immer stört sind schlecht gemachte Programme, egal ob Anwendungen, Entwicklungsumgebungen, Ablaufumgebungen oder eben auch Compiler und da stören mich zum Beispiel Ooops Nerv (man schaue sich Linoma Surveyor an), WebsFear Admin Console, WDSC (Eclipse selber ist eigentlich nicht schlecht) und über das Listing des SQL Pre Compilers war ich schnöderweise entsetzt (nicht über Dein Programm, sonder das was der daraus macht) und ich würde hier dringend empfehlen dieses Produkt (VARPG) zu reklamieren und Fehlerbehebung zu verlangen.
Gegen Deinen Ansatz das so zu machen ist überhaupt nichts einzuwenden und das muss auch gehen ohne jede Klimmzüge. Und ich denke das bekommen wir hin. Um es konkret zu machen versuche bitte folgendes:

DLSARTCW1 E DS EXTNAME(LSARTCW1)
ändern in
DLSARTCW1R E DS EXTNAME(LSARTCW1)

C/EXEC SQL C+ select * into :lsartcw1 fr om opusdata.lsartcw1 C+ where arartnr = :kpartnr C+ and arvar = 0 C/END-EXEC ändern in:
C/EXEC SQL C+ select *
C+ into :lsartcw1r
C+ from opusdata.lsartcw1
C+ where arartnr = :kpartnr C+ and arvar = 0 C/END-EXEC

dabei bitte nochmal verifizieren, dass alle leer aussehenden Felder
tatsächlich alle Blank enthalten

Falls das nicht funzt, poste bitte nochmal die neue Umwandlungsliste

mfg

Dieter Bender


@Dieter,

ich weiss, das Du ein ausgesprochener Fan von Java bist. Mir dagegen sträuben sich die Nackenhaare wenn ich an das langsame Java denke. Ich bekomme schon eine Gänsehaut wenn ich an die Performance eines iSeries Navigators denke oder die Steuerzentrale von DB2 oder Eclipse oder oder...

Meckern hilft mir da im moment nicht weiter, und plattformunabhängig muss ich auch nicht sein. Es sollte halt quick and dirty sein.

Nun ja, ich werde entweder nun ein normales Read verwenden mit den Möglichkeiten Datenumsetzungsfehler zu vermeiden, oder das ganze doch auf die iSeries verschieben. Dort würde ich übrigens niemals Java machen (Momentan).

Nichts für ungut, und vor allem vielen Dank für die zahl- und hilfreiche Unterstützung.

Peter

Joe
08-04-04, 11:16
Hallo Peter.

Änder mal bei den VARPG-Erstellungsoptionen
unter "Liste" das Einrücken der Quellenliste. Wert "3" rausnehmen.

Wie sieht dann die Compiler-Liste aus?

Gruss Joe

Peter Kosel
08-04-04, 13:19
Hallo Joe,

also, wäre ich eine Dame, würdest Du jetzt einen Kuss bekommen - bin ich aber nicht. Dein Tipp war genau das richtige !!!!
Scheinbar kam der SQL-PreCompiler damit nicht zurecht.

DANKE !!!

Peter

PS. Mit so einem Sch... muss man (Frau) sich herumschlagen...
Danke auch nochmals an alle anderen die sich hier wirklich bemüht haben!

mk
09-04-04, 10:38
Hallo Joe


nur mal so eine Frage: Wie kommst Du denn darauf ?
Ich habe bei den Einstellungen kein Wert.

Gruss Michael


Änder mal bei den VARPG-Erstellungsoptionen
unter "Liste" das Einrücken der Quellenliste. Wert "3" rausnehmen.

Wie sieht dann die Compiler-Liste aus?

Gruss Joe[/QUOTE]

Joe
13-04-04, 10:11
Hallo Michael.

In der Umwandlungsliste steht bei den Optionen
folgende Zeile:

Einrückung der Quellenliste . . : '3'

Da gibt es wohl Probleme im /free-Code.

Gruss
Joe