-
Hallo,
im Prinzip gehört das was in dem with steht in eine View (deswegen sind Common Table Expressions eigentlich Schlunz)
und auf Tables sollte man in der Applikation eh nicht zugreifen.
D*B
 Zitat von woodstock99
so nun noch eine Frage bevor ich ewig im dunklen tappe.
Mein SQL Befehl
insert into ....
with fullselect as (
.......
.......
.......
.......
.......
)
select from fullselect
where ( soll flexibel sein)
Also dieser ganze Sql Befehl soll abgesetzt werden wobei ich mir die where per Programm zusammenbauen muß.
Jetzt meine Frage: Wie würdet ihr das wo
und wie einbauen (Ich meine nicht die where bedingung  ).
Alles ins RPG schreiben oder was anderes??
Teile davon auslagern?? Wenn ja wie??
Mir würden ein Paar Tipps wie man das angeht wirklich weiterhelfen.
Danke
-
Danke aber das mir der view funktioniert nicht da einige Dateien Programmbeschriebene Dateien sind und die gute As400 eine Fehlermeldung bringt. Siehe weiter oben!!!!!!
-
das hat mit intern beschrieben nix zu tun, ob da jemand in einem Programm einen Alfa Bandwurm irgendwie zerlegt, das ist SQL Schnurz, da kann der nix von wissen.
wie sind die Dateien erstellt, wie sieht dein create view aus und was für eine Fehlermeldung bekommst du genau?
BTW: anfangen tut man mit Normalisierung! und dieser ganze intern beschriebene Kram ist nicht einmal in erster Normalform; wenn man halt auf so einem Datenkompost hockt, dann muss man das von der Basis her ändern, oder man kommt nie aus dem Sumpf heraus.
D*B
 Zitat von woodstock99
Danke aber das mir der view funktioniert nicht da einige Dateien Programmbeschriebene Dateien sind  und die gute As400 eine Fehlermeldung bringt. Siehe weiter oben!!!!!!
-
ja da geb ich Dir recht , nur hier ist zu 80 % alles Programmbeschrieben deshalb tu ich mich auch so schwer.
Fehlermeldung
Nachricht . . . : KDSTAMM in QS36F für Operation ungültig.
Ursache . . . . : Ursachencode ist 7. Ursachencodes:
1 - KDSTAMM hat keine Teildateien.
2 - KDSTAMM wurde mit freiem Speicherplatz gesichert.
3 - KDSTAMM nicht im Journal aufgezeichnet, keine Berechtigung für Journal
oder der Journalstatus ist *STANDBY. Dateien mit
RI-Integritätsbedingungsaktion CASCADE, SET NULL od. SET DEFAULT müssen im
selben Journal aufgezeichnet werden.
4 und 5 - KDSTAMM in Prod.bibl. gespeichert/erstellt, aber Benutzer in
Debug-Modus UPDPROD(*NO).
6 - Schema wird erstellt, aber Benutzer in Debug-Modus UPDPROD(*NO).
7 - Basistabelle zum Erstellen der Sicht ungültig. Tabelle ist
programmbeschrieben oder befindet sich in einem temporären Schema.
create view xxxx/auswahl as
select
b.rechnu , a.rechnr,
date(
case when substr(digits(a.datum), 5, 6) < '70' then '20' else '19'
end concat substr(digits(a.datum), 5, 2) concat '-'
concat substr(digits(a.datum), 3, 2) concat '-'
concat substr(digits(a.datum), 1, 2)) as recdat,
case when Anskunde = 'X'
then
case when ltrim(substr(z.f00002 , 31, 9)) <> ' '
then
ltrim(substr(z.f00002 , 31, 9))
else
'123456789'
end
else
case when ltrim(substr(y.anschri2, 1, 8)) <> ' '
then
ltrim(substr(y.anschri2, 1, 8))
else
'123456789'
end
end as POSTL,
case when Anskunde = 'X'
then
case when ltrim(substr(z.f00002 , 40, 20)) <> ' '
then
ltrim(substr(z.f00002 , 40, 20))
else
'*UNDEF'
end
else
CASE when ltrim(substr(y.anschri2, 9, 26)) <> ' '
then
ltrim(substr(y.anschri2, 9, 26))
else
'*UNDEF'
end
end as ORTNA,
case when Anskunde = 'X'
then
case when ltrim(substr(z.f00002 , 5, 26)) <> ' '
then
ltrim(substr(z.f00002 , 5, 26))
else
'*UNDEF'
end
else
case when ltrim(substr(x.anschri2, 1, 35))<> ' '
then
ltrim(substr(x.anschri2, 1, 35))
else
'*UNDEF'
end
end as NAMEN,
a.kundennr as kunden , a.kdeinr,(ENDBETRAG-zahlung) as restbetrag,
date(
case when (digits(faelligtt)) concat (digits(faelligmm)) <>
'3002'
then
case when (digits(faelligjj)) < '70' then '20' else '19' end
concat (digits(Faelligjj)) concat '-'
concat (digits(faelligmm)) concat '-'
concat (digits(faelligtt))
else
case when (digits(faelligjj)) < '70' then '20' else '19' end
concat (digits(Faelligjj)) concat '-'
concat '03-01'
end
) as faedat
from qs36f/debisudl as a
left outer join qs36f/KDSTAMM as Z on kundennr = z.k00001
left outer join qs36f/debisudt as Y on a.rechnr = y.rechnr
and y.umerkmal = '3'
left outer join qs36f/debisudt as x on a.rechnr = x.rechnr
and x.umerkmal = '1'
left outer join xxx/debivodtu as b on a.rechnr = b.rechnr
KDSTAMM Programm BESCHRIEBEN
DSPFD-Befehlseingabe
Datei . . . . . . . . . . . . . . . . . . . : FILE KDSTAMM
Bibliothek . . . . . . . . . . . . . . . : QS36F
Art der Information . . . . . . . . . . . . : TYPE *ALL
Dateiattribute . . . . . . . . . . . . . . : FILEATR *ALL
System . . . . . . . . . . . . . . . . . . : SYSTEM *LCL
Kopfzeile der Dateibeschreibung
Datei . . . . . . . . . . . . . . . . . . . : FILE KDSTAMM
Bibliothek . . . . . . . . . . . . . . . . : QS36F
Dateiart . . . . . . . . . . . . . . . . . : Physisch
Dateiart . . . . . . . . . . . . . . . . . : FILETYPE *DATA
Zusatzspeicherpool-ID . . . . . . . . . . . : 00001
Datenbankdateiattribute
Extern beschriebene Datei . . . . . . . . . : Nein
Dateiebenen-ID . . . . . . . . . . . . . . : 0921203095800
Erstellungsdatum . . . . . . . . . . . . . : 03.12.92
Text 'Beschreibung' . . . . . . . . . . . . : TEXT
Verteilte Datei . . . . . . . . . . . . . . : Nein
Partitionierte SQL-Tabelle . . . . . . . . : Nein
DBCS-fähig . . . . . . . . . . . . . . . . : Nein
Maximale Anzahl Teildateien . . . . . . . . : MAXMBRS *NOMAX
Anzahl der Integritätsbedingungen . . . . . : 0
Anzahl der Auslöser . . . . . . . . . . . . : 0
Anzahl der Teildateien . . . . . . . . . . : 1
Wartung des Zugriffspfads . . . . . . . . . : MAINT *IMMED
Wiederanlauf des Zugriffspfads . . . . . . : RECOVER *NO
Erzwungener Zugriffspfad . . . . . . . . . : FRCACCPTH *NO
Größe der Teildatei SIZE
Ursprüngliche Anzahl Datensätze . . . . . : 100000
Satzanzahl für Erweiterung . . . . . . . : 32767
Maximale Anzahl Erweiterungen . . . . . . : 508
Datensatzkapazität . . . . . . . . . . . . : 16745636
Speicher zuordnen . . . . . . . . . . . . . : ALLOCATE *NO
Zusammenhängender Speicherplatz . . . . . . : CONTIG *NO
Bevorzugte Speichereinheit . . . . . . . . : UNIT *ANY
Sätze für erzwungenes Schreiben . . . . . . : FRCRATIO *NONE
Maximale Dateiwartezeit . . . . . . . . . . : WAITFILE *CLS
Maximale Satzwartezeit . . . . . . . . . . : WAITRCD *NOMAX
Max % gelöschter Sätze zulässig . . . . . . : DLTPCT *NONE
Gelöschte Sätze wiederverwenden . . . . . . : REUSEDLT *NO
ID des codierten Zeichensatzes . . . . . . : CCSID 65535
Lesen zulässig . . . . . . . . . . . . . . : Ja
Schreiben zulässig . . . . . . . . . . . . : Ja
Fortschreiben zulässig . . . . . . . . . . : ALWUPD *YES
Löschen zulässig . . . . . . . . . . . . . : ALWDLT *YES
Satzformat-Aktualitätsprüfung . . . . . . . : LVLCHK *NO
Zugriffspfad . . . . . . . . . . . . . . . : Geschlüsselt
Größe des Zugriffspfads . . . . . . . . . . : ACCPTHSIZ *MAX4GB
Maximale Schlüssellänge . . . . . . . . . . : 5
Maximale Satzlänge . . . . . . . . . . . . : 800
Flüchtig . . . . . . . . . . . . . . . . . : Nein
Datei wird derzeit aufgezeichnet . . . . . : Nein
Zugriffspfadbeschreibung
Wartung des Zugriffspfads . . . . . . . . . : MAINT *IMMED
Eindeutige Schlüsselwerte erforderlich . . : UNIQUE Ja
Zugriffspad aufgezeichnet . . . . . . . . . : Nein
Zugriffspfad . . . . . . . . . . . . . . . : Geschlüsselt
Integritätsart . . . . . . . . . . . . . . : NONE
Anzahl der Schlüsselfelder . . . . . . . . : 1
Satzformat . . . . . . . . . . . . . . . . : R.KDSTRE
Schlüsselfelder . . . . . . . . . . . . . : K00001
Reihenfolge . . . . . . . . . . . . . . : Aufsteigend
Vorzeichen angegeben . . . . . . . . . : UNSIGNED
Zone/Ziffer angegeben . . . . . . . . . : *NONE
Alternative Sortierfolge . . . . . . . : Nein
Sortierfolge . . . . . . . . . . . . . . . : SRTSEQ *HEX
Sprachen-ID . . . . . . . . . . . . . . . . : LANGID DEU
Teildateibeschreibung
Teildatei . . . . . . . . . . . . . . . . . : MBR M921203
Teildateiebenen-ID . . . . . . . . . . . : 0921203095801
Erstellungsdatum der Teildatei . . . . . : 03.12.92
Text 'Beschreibung' . . . . . . . . . . . : TEXT
Verfallsdatum der Teildatei . . . . . . . : EXPDATE *NONE
Wartung des Zugriffspfads . . . . . . . . : MAINT *IMMED
Wiederherstellung des Zugriffspfads . . . : RECOVER *NO
Größe der Teildatei SIZE
Anfangsanzahl der Sätze . . . . . . . . : 100000
Satzanzahl für Erweiterung . . . . . . : 32767
Maximale Anzahl Erweiterungen . . . . . : 508
Aktuelle Anzahl Erweiterungen . . . . . . : 0
Satzkapazität . . . . . . . . . . . . . . : 16745636
Aktuelle Anzahl Sätze . . . . . . . . . . : 4897
Anzahl gelöschter Sätze . . . . . . . . . : 0
Speicher zuordnen . . . . . . . . . . . . : ALLOCATE *NO
Zusammenhängender Speicher . . . . . . . : CONTIG *NO
Bevorzugte Speichereinheit . . . . . . . : UNIT *ANY
Sätze für erzwungenes Schreiben . . . . . : FRCRATIO *NONE
Offenen Datenpfad gemeinsam benutzen . . : SHARE *NO
Max % gelöschte Sätze zulässig . . . . . : DLTPCT *NONE
Anzahl der Teildateizugriffe . . . . . . : 0
Aktivitätsstatistik für Datenbereich . . :
Datenbereichsgröße in Byte . . . . . . : 3944448
Zugriffe zum Öffnen der phys. Datei . . : 4.303
Zugriffe zum Schließen der phys. Datei : 4.121
Zugriffspfad gültig . . . . . . . . . . : Ja
Impl. gemeinsame Ben. des Zugriffspfads : Nein
Satzformatliste
Satz- Fmt.Ebenen-
Format Felder Länge ID
R.KDSTRE 3 800 26304ABE995DF
Text . . . . . . . . . . . . . . . . . . . :
Gesamtanzahl Formate . . . . . . . . . . . . : 1
Gesamtanzahl Felder . . . . . . . . . . . . : 3
Gesamtlänge Datensatz . . . . . . . . . . . : 800
Teildateiliste
Quell. Erstell. Letzte Änderung Gelöschte
Teildatei Größe Art Datum Datum Uhrzeit Sätze Sätze
M921203 4071424 03.12.92 18.06.08 11:04:50 4897 0
Text:
Gesamtzahl an Teildateien . . . . . . . . : 1
Gesamtzahl nicht verfügbarer Teildateien . : 0
-
... das liegt am Filesystem QS36F
mit 36er Altlasten habe ich mich (zum Glück) schon ewig nicht mehr beschäftigt...
dann bleibt aus meiner Sicht eigentlich nur noch ein Zugriffsmodul (sprich: ein ILE SRVPGM mit exportierten Procedures setWhereClause, setOrderBy ung getRecord...), damit man dieses ganze SLQ Gefiesel wenigstens nicht redundant in der Applikation hat.
mein Beileid...
D*B
-
Vielen Dank fürs Beileid aber das hilft mir auch nicht weiter .
Toller Witz Serviceprogramme. In meiner alten Arbeiten hatten wir sowas aber hier
ist Gruppenstufenanzeiger usw das Mittel aller Dinge. Datums werden z.B auf 30.2 gesetzt (das sind wirklich Brecher, da kann man eigentlich nur noch drüber lachen obwohl es zum weinen ist) und jetzt soll ich mit Serviceprogrammen anfangen.
Da werde ich gesteinigt!!!!!!
Ich brauche bald einen Seelenklemptner .
Hoffe noch auf Hilfe oder einen anderer guten Rat.
-
kann man das nicht vom Kopf auf die Füße stellen und damit anfangen die vorhandenen Satzaufbauten in DDS erstellten Dateien nachbilden und diese Dateien dann mit den unveränderten, vorhandenen Schinken verarbeiten?
Extern beschriebene Dateien darf man ja schließlich auch intern beschreiben, es muss nur passen. Das ist zwar nicht ganz ohne Nebenwirkungen (wenn zum Beispiel unterschiedliche Beschreibungen verwendet werden, aber irgendwie muss man ja mal auf trockeneres Terrain kommen.
D*B
PS: nur so eine Idee eines seit > 10 Jahren Altlasten freien Programmierers
 Zitat von woodstock99
Vielen Dank fürs Beileid aber das hilft mir auch nicht weiter  .
Toller Witz Serviceprogramme. In meiner alten Arbeiten hatten wir sowas aber hier
ist Gruppenstufenanzeiger usw das Mittel aller Dinge. Datums werden z.B auf 30.2 gesetzt (das sind wirklich Brecher, da kann man eigentlich nur noch drüber lachen obwohl es zum weinen ist) und jetzt soll ich mit Serviceprogrammen anfangen.
Da werde ich gesteinigt!!!!!!
Ich brauche bald einen Seelenklemptner  .
Hoffe noch auf Hilfe oder einen anderer guten Rat.
-
Das ist nicht so leicht. Die Datei wird noch in DFU Programmen verwendet.
In OCL36 gibt es noch COPYDATA, weiß nicht ob es hier dann nicht kracht .
Beneide jeden der mit so einer (Entschuldigung) scheiße nichts zu tun hat!!
-
 Zitat von woodstock99
Das ist nicht so leicht. Die Datei wird noch in DFU Programmen verwendet.
In OCL36 gibt es noch COPYDATA, weiß nicht ob es hier dann nicht kracht  .
Beneide jeden der mit so einer (Entschuldigung) scheiße nichts zu tun hat!!
habe ich auch jahrelang mit zu tun gehabt, steigert das Unwohlsein ungemein
Aber alles was die gute alte S36 konnte, kann man nativ umsetzen.
copydata-> cpyfile
und dfu würde ich ganz ´rausnehmen und eine Anwendung ´drausmachen.
Letztens habe ich noch eine 36iger Datei durch DDS-beschriebene Datei ersetzt, sogar der bldindex tat es danach noch. ist halt nur viel Fleißarbeit.
lg
Hans-Joachim
Similar Threads
-
By Stefan_Sk in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 26-05-06, 16:37
-
By Lucky4712 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 24-05-06, 15:57
-
By cbe in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 08-06-05, 16:21
-
By itec01 in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 16-09-04, 18:38
-
By rebe in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 07-09-01, 13:55
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks