-
Konkretes Beispiel habe ich leider keines, im Prinzip sind
die Daten aber ganz "normale" SQL-Tabellen.
Die Vorgabe ist aber, mit nur EINEM Programm, ALLE Tabellen
auslesen zu können. D.h. dieses eine Lese-Programm wird - wenn man so will - von unterschiedlichsten Bildschirmen aufgerufen und soll dann den durch den Select Cursor
gefundenen Satz als Datenwurst zurückliefern, unabhängig
von der Anzahl der Felder, Datentypen und Aufbau.
Es wird dann ein String mit maximaler Länge im Programm
vorgesehen, um die Auswertung des Datenstrings kümmert
sich dann ein anderes Programm.
Kann gut sein, dass sich sowas mit SQL gar nicht realisieren läßt, das bin ich eben gerade am erforschen.
Nachdem andere Entwicklungsumgebungen aber Datawindows/-Areas/-Grids o.Ä. unterstützen, lassen sich dann hier vielleicht
so in einer Schleife die Spalten durch Konvertieren zusammen"stringen", damit der VARPG damit gefüttert werden kann.
Also VARPG-GUI sendet "Select X from Y... " an das
"Connector"-DLL, dies schickt dann die gewünschten Spalten
in einer Wurst zurück, und das VARPG-GUI, welches den Aufbau ja kennt (aber eben erst zur Laufzeit, da es für unterschiedliche Tabellen verwendet wird), analysiert den
String und stellt die Daten am Bildschirm dar.
Mit OVRDBF, LVLCHK(NO) und einer Dummy-Datei geht das ohne SQL bereits sehr gut.
Voraussetzung ist hier aber, dass der
Satzformatname zum Kompilationszeitpunkt bekannt ist.
Nachdem dies bei einzelnen Tabellen nicht vorausgesetzt
werden kann, der Satzformatname aber nicht dynamisch
sonder fix sein muss, war unser Ansatz, es über den SQL-Weg
zu versuchen. Für andere Vorschläge sind wir natürlich
gerne offen.
Ich Hoffe es hilft zum besseren Verständnis.
lg
Chris
-
Da muss ich dann doch Dieter zustimmen und halte das Konzept für generell falsch (wer immer auch so eine Anforderung stellt).
VARPG ist dafür der absolut falsche Ansatz, da sich sowas tatsächlich nur mit CLI lösen läßt.
Embedded dynamisches SQL arbeitet immer noch mit fest definierten Cursorn.
Wenn also ein Cursor geöffnet ist, kann der selbe Name nicht nochmal verwendet werden, man muss den Cursor dann erst schließen um mit einem anderen Select neu Daten zu lesen.
Um das ganze abzukürzen:
Ein solches Konzept gehört in die Tonne gedrückt, da man alle Vorteile des SQL's (Join's, CTE's, u.v.m.) überhaupt nicht nutzen kann.
Ausserdem produziert man nicht unerheblichen Overhead mit vollkommen unnötigen Konvertierungen.
SQL's gehören genau dahin, wo sie gebraucht werden und nicht in irgendwelchen Call-Ebenen versteckt.
-
Alles klar!
Danke für die Infos/Meinung.
SQL wurde ja auch nicht wegen SQL selbst gewählt,
sondern eigentlich nur um das Satzformat-Problem zu umgehen.
Falls da an CLI also kein Weg vorbeiführt, so muss es
dann wohl so sein....(macht mich klarerweise
auch nicht glücklich, ich werde aber damit leben [müssen])
Danke + lg
Chris
-
... naja, SQL kann neben Fug auch jeden Unfug und freilich könnte man sowas im View Layer vorgaukeln und über instead Trigger sogar update fähig machen, aber Details dazu rücke ich allenfalls auf der Kappensitzung der Gesellschaft für Informatik raus, damit ich solchen Quatsch (in Worten Quatsch) nicht noch ungewollt unterstütze.
D*B
 Zitat von Fuerchau
Da muss ich dann doch Dieter zustimmen und halte das Konzept für generell falsch (wer immer auch so eine Anforderung stellt).
VARPG ist dafür der absolut falsche Ansatz, da sich sowas tatsächlich nur mit CLI lösen läßt.
Embedded dynamisches SQL arbeitet immer noch mit fest definierten Cursorn.
Wenn also ein Cursor geöffnet ist, kann der selbe Name nicht nochmal verwendet werden, man muss den Cursor dann erst schließen um mit einem anderen Select neu Daten zu lesen.
Um das ganze abzukürzen:
Ein solches Konzept gehört in die Tonne gedrückt, da man alle Vorteile des SQL's (Join's, CTE's, u.v.m.) überhaupt nicht nutzen kann.
Ausserdem produziert man nicht unerheblichen Overhead mit vollkommen unnötigen Konvertierungen.
SQL's gehören genau dahin, wo sie gebraucht werden und nicht in irgendwelchen Call-Ebenen versteckt.
-
;-) ist klar.
Naja, wir werden diese Thematik wohl auslagern
(lies: in einer anderen Sprache realisieren) müssen.
Danke nochmal für eure Tipps/Meinungen!
lg
Chris
Similar Threads
-
By Sony in forum IBM i Hauptforum
Antworten: 27
Letzter Beitrag: 20-07-09, 21:48
-
By Squall in forum NEWSboard Programmierung
Antworten: 23
Letzter Beitrag: 18-10-06, 12:01
-
By redsky in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 06-12-05, 11:23
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 15-11-05, 11:45
-
By woki in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 13-04-04, 12:09
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