-
Vielleicht fehlen euch nur ein paar PTFs?
-
Bei uns geht das (bisher) auch nicht. Wir haben und damit abgefunden, Hostvariablen einzeln zu deklarieren und nicht direkt die Felder aus der Datenstruktur zu verwenden.
Wir sind auf 7.1 TR 11
Dieter
-
... wobei man dieses Problem (bei adäquater Vorgehensweise) nicht hat.
Datenbanklogik gehört (eigentlich) ins View-Layer ( create view as select...) und dann hat man im Programm nur noch select * from myView order by ,,, und die DS für den fetch wird dann als E DS deklariert - und falls das mit real totally free nicht geht, dann ist das eh Murks (Krampf ist das eh...)
D*B
-
Es geht hierbei ja nicht immer um Datenstrukturen, die den Datensatz abbilden. Ich meine Datenstrukturen, die ich im Programm deklariere, um z.B. brutto, netto und mwst abzubilden:
Code:
dcl-ds summeDS qualified:
brutto packed(15:2);
netto packed(15:2);
mwst packed(15:2);
Da würde ich schon gerne so etwas schreiben wie:
exec sql select sum(xx_brutto) into :summeDS.brutto from tabellexx;
In dieser Konstellation hilft mir eine View nicht weiter, denke ich.
-
... was hast Du gegen
create view AufttragSumme (oder whatever) as
select sum(xx-brutto) as brutto, sum(...) as netto, sum(...) as mwst
from...
dann wird deine SummeDS zur e ds und du füllst die dann mit select * from AuftragSumme into ...
die dahinter stehende Ideen sind Entkoppelung (verwende niemals < never - ever> eine Table im Programm) und Zentralisierung (select sum(..) ist Datenbanklogik!!!) man gewinnt dadurch die Möglichkeit weitgehende strukturelle Änderungen in der Datenbank vorzunehmen, ohne dass dei Anwendung tangiert ist und QS wird einfacher, da die Prgramme im Datenbankzugriff realtiv stumpf sind.
D*B
-
 Zitat von BenderD
... was hast Du gegen
create view AufttragSumme (oder whatever) as
select sum(xx-brutto) as brutto, sum(...) as netto, sum(...) as mwst
from...
dann wird deine SummeDS zur e ds und du füllst die dann mit select * from AuftragSumme into ...
die dahinter stehende Ideen sind Entkoppelung (verwende niemals < never - ever> eine Table im Programm) und Zentralisierung (select sum(..) ist Datenbanklogik!!!) man gewinnt dadurch die Möglichkeit weitgehende strukturelle Änderungen in der Datenbank vorzunehmen, ohne dass dei Anwendung tangiert ist und QS wird einfacher, da die Prgramme im Datenbankzugriff realtiv stumpf sind.
D*B
OK, gebe mich geschlagen. Ich kann deine Argumentation nachvollziehen.
-
Bei uns (7.2) funktioniert das ganze ohne Probleme.
Code:
exec sql select sum(xx_brutto) into :summeDS.brutto from tabellexx;
Ich bilde mir auch ein schon vor früher 6.1 und 7.1 solche Konstrukte schon mal verwendet zu haben.
Ich meine DS oder Teile bzw. Felder einer DS im SQL zu verwenden.
"Leider" kann ich das aber nicht mehr testen da bei uns alles schon auf 7.2 hochgezogen ist.
-
 Zitat von andreaspr@aon.at
Bei uns (7.2) funktioniert das ganze ohne Probleme.
Code:
exec sql select sum(xx_brutto) into :summeDS.brutto from tabellexx;
Ich bilde mir auch ein schon vor früher 6.1 und 7.1 solche Konstrukte schon mal verwendet zu haben.
Ich meine DS oder Teile bzw. Felder einer DS im SQL zu verwenden.
"Leider" kann ich das aber nicht mehr testen da bei uns alles schon auf 7.2 hochgezogen ist.
... so, so, unter V6R1 free form declarations
viele Grüße aus Alsheim
D*B
-
 Zitat von BenderD
... so, so, unter V6R1 free form declarations
viele Grüße aus Alsheim
D*B
Bezogen auf die ursprüngliche Aussage:
 Zitat von ExAzubi
Wenn ich die DS mit einer normalen D bzw. I Karte definiere, dann geht es...
Ja, mit einer DS konnte ich das auch schon früher ...
-
 Zitat von andreaspr@aon.at
Bei uns (7.2) funktioniert das ganze ohne Probleme.
Code:
exec sql select sum(xx_brutto) into :summeDS.brutto from tabellexx;
Ich bilde mir auch ein schon vor früher 6.1 und 7.1 solche Konstrukte schon mal verwendet zu haben.
Ich meine DS oder Teile bzw. Felder einer DS im SQL zu verwenden.
"Leider" kann ich das aber nicht mehr testen da bei uns alles schon auf 7.2 hochgezogen ist.
Wenn das wirklich klappt, wäre das natürlich schön. Ich muss dass nochmal ausprobieren. Da wir Profound verwenden, können wir in Bildschirmdateien lange Feldnamen verwenden. Die werden intern in einer Datenstruktur im RPG-Programm verarbeitet. Wenn unser Recordformat im Bildschirm f1 heißt, greifen wir z.B. über "f1.bruttobetrag" auf das Bildschirmfeld zu. Das Feld in der Datenstruktur konnten wir (zumindest vor einiger Zeit) nicht direkt mit embedded SQL füllen. Vielleicht geht das ja jetzt. (Oder wir hatten damals ein anderes Problem).
Dieter
-
Bei uns mit 7.1 funktioniert das.
Meine DS schaut so aus:
dcl-ds ds_auftrag qualified inz;
zon_fld1 zoned(9);
zon_fld2 zoned(9);
zon_fld3 zoned(2);
zon_fld4 zoned(2);
zon_fld5 zoned(1);
zon_fld6 zoned(9);
end-ds;
Der SQL dazu:
exec sql declare mein_cursor cursor for
select * from meineview;
exec sql open mein_cursor;
exec sql fetch mein_cursor into :ds_auftrag;
exec sql close mein_cursor;
Ein Beispiel mit direktem select into habe ich leider gerade nicht,
aber das sollte ja kein Problem darstellen.
-
Das ist ja klar. Du füllst die ganze Struktur. Das geht natürlich. Die Frage ist, ob du auch ein einzelnes Unterfeld der Struktur füllen kannst.
Also: exec sql fetch mein_cursor into :zon_fld2;
Similar Threads
-
By Isabella Pridat-Zapp in forum Archiv NEWSboard Events
Antworten: 0
Letzter Beitrag: 10-09-15, 12:50
-
By philsturm in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 05-09-14, 09:09
-
By AS400.lehrling in forum Intern - Hilfe - Feedback - Tests-Forum
Antworten: 1
Letzter Beitrag: 13-11-13, 23:54
-
By Kirsten Steer in forum Archiv NEWSblibs
Antworten: 0
Letzter Beitrag: 06-06-02, 08:59
-
By lrmeyer in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 05-03-02, 07:38
Tags for this Thread
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