-
Total Free und SQL --> Eine schlechte Lösung?
Hallo zusammen,
wenn ich in einem SQLRPGLE eine DCL-DS definiere um diese für eine SELECT INTO zu nutzen, dann sagt der SQL-Precompiler, das er die Zielvariable (Also die DS) nicht kennt.
Wenn ich die DS mit einer normalen D bzw. I Karte definiere, dann geht es...
Kann es sein, das IBM eben nicht alles mitgezogen hat?
Danke an alle Helfenden.
-
... das wäre ja nicht ungewöhnlich, wenn der SQL Precompiler backlevel ist (ich erinnere mich nur, wie lange es gedauert hat, bis der qualified DS und lokale Variablen konnte...)
D*B
-
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
-
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 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.
-
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
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