-
Ist schon seltsam, dass der "Select Into" eigentlich dem "Value Into" vollkommen entspricht da beide nur eine einzelne Zeile zurückgeben dürfen.
Allerdings vermisse ich beim "Values Into" die Beschreibung, wie das mit einem Prepared Statement gehen soll.
Entweder ich prepare den "Values..." mit anschließendem "Execute into", wobei der Execute ja bei INTO nur eine SQLDA erlaubt oder ich kann beim "Values" statt eines Ausdruckes auch einen Statementnamen angeben. Das ist so aber nicht dokumentiert.
-
... wie sonst auch:
Code:
D*B CRTSQLRPGI TSTVALUES
D*B+ OBJTYPE(*MODULE)
D*B+ DBGVIEW(*SOURCE)
D*B CRTPGM TSTVALUES
D*B+ ACTGRP(TSTVALUES)
d maxname s 30
d halstring s 128
halstring = 'values (select max(vorname) from covelenz) '
+ 'into ?';
exec sql
prepare s1 from :halstring;
exec sql
execute s1 using :maxname;
dsply maxname;
exec sql commit;
return;
das mit values und select into verstehe ich auch nicht, wahrscheinlich hat der erste Versuch das zu implementieren zu einem Bug im Parser beim parsen des Select geführt und dann hat man...
oder das war wieder so eine Kantinenwette, wo die SQL Crew mit der RPG Crew gewettet hat, dass man auch eine unnötige Anweisung im SQL unterkriegt...
D*B
-
Ok, aus der Doku für Execute ging nicht eindeutig hervor, dass "using" auch für Ausgabeparameter gilt (z.B. für dynamische SQL-Prozeduraufrufe interessant).
Den komplexen "execute ... into Descriptor" benötigt man dann ja jetzt nicht mehr.
-
... ich habe noch nie SQL Deskriptoren verwendet, den einzigen Fall, den ich sehe, ist: Wenn man den Tabellennamen, bzw. die Parameterliste oder die Struktur eines ResultSets erst zur Laufzeit kennt und bis dahin flexibel halten will (in anderen Worten: Mit Kanonen auf Spatzen schießen will, Dinge unnötig verkomplizieren oder zeigen will, dass man unverständliche Programme schreiben kann).
Die Datenbank baut einem eh# für die Rückgaben eine SQLDA, die mit den Daten zurückkommt.
D*B
-
Ich habe in V4R3 einen variablen SQLCPY (als CMD) entwickelt, der heute auf V7R1 immer noch funktioniert und auch sehr häufig eingesetzt wird.
Hier muss mit SQLDA's gearbeitet werden da weder Tabellen noch Felder zur Compilezeit bekannt sind.
Da haben es dynamische Sprachen wie Java/VB/.NET... natürlich erheblich einfacher.
In einer normalen Anwendung habe ich SQLDA's auch noch nie benötigt.
-
... da hätte ich eher SQL CLI genommen (Geschmacksache sagte der Affe und biss in die Seife)
-
Da dies nun schon eine Weile hier ist (ca. 1999/2000) war mir CLI auf der AS/400 und C-Aufrufe aus COBOL noch unbekannt und RPG mache ich erst seit ca. 2002.
M.a.W.: der SQLCPY ist komplett in COBOL.
Similar Threads
-
By dschroeder in forum IBM i Hauptforum
Antworten: 14
Letzter Beitrag: 31-08-16, 15:32
-
By alex61 in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 06-07-16, 11:51
-
By alex61 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 09-06-16, 13:26
-
By Joshua in forum NEWSboard Programmierung
Antworten: 12
Letzter Beitrag: 24-11-15, 10:53
-
By labm in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 07-05-15, 07:55
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