View Full Version : Datenumsetzungsfehler bei READ
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
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
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
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!
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]
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