-
Dies geht nur mit dynamischem SQL:
declare xxx cursor for yyy
prepare yyy from :mystmt
open xxx
fetch xxx into ...
close xxx
xxx = dein Cursorname
yyy = ein Statementname
mystmt = eine Programmvariable die den vollständigen Select enthält
Ansonsten ist das Design dieser Tabelle eher fragwürdig
-
Hallo Fuerchau,
danke für die schnelle Antwort.
Sehr fragwürdig, ich weiß... aber sie existiert so nun mal...
Mit prepare hab ich bisher noch nie gearbeitet..
Mein SQL-Statement sieht folgendermaßen aus:
MPA = Variable mit Feldinhalt (z. B. 'A0810')
C/EXEC SQL
C+ DECLARE C1 CURSOR FOR SELECT * FROM LIB/FILE WHERE MPA = '1'
C/END-EXEC
Was genau ist mit Statementname gemeint?
Gem. deinem Tip sollte es also folgendermaßen aussehen(?!):
C/EXEC SQL
C+ DECLARE C1 CURSOR FOR YYY
C/END-EXEC
C/EXEC SQL
C+ PREPARE YYY FOR :VAR
C/END-EXEC
wobei :VAR = 'SELECT * FROM LIB/FILE WHERE' +Eingabevariable +'= "1"'
Richtig ??
-
Im Prinzip ja, allerdings solltest du einen eindeutigen Cursor- und Statementnamen verwenden und nicht YYY.
Ein Cursor kann auch nicht umdefiniert werden, nimm also C2 oder was anderes.
-
Danke, es funktioniert (fast)!!
Allerdings möchte ich aus Gründen der Performance nicht alle Felder selektieren, sonder nur das eine Feld, das ich im Programm benötige. (SIMUSR)
Wenn ich nun aber das SQL-Statement
SELECT * FROM VOGIO/WUSIMSEC WHERE A0810 = '1'
durch dieses
SELECT SIMUSR FROM VOGIO/WUSIMSEC WHERE A0810 = '1'
ersetze, so funktioniert die Abfrage nicht mehr !?!?!
Das gleiche Statement in STRSQL aufgerufen, funktioniert wie erwartet tadellos.
Selbst wenn ich das jeweilige Feld, das ich im WHERE-Teil abfrage zusätzlich auswähle, also
SELECT SIMUSR, A0810 FROM VOGIO/WUSIMSEC WHERE A0810 = '1'
so funktioniert es dennoch nicht !!!!
Woran liegt das ???
-
Ich würde dafür eine Skript-Sprache benutzen, also ein Skipt schreiben, das interpretiert wird.
-
Hallo Tobse77,
Wenn Du anstatt SELECT *, Select Feld bzw. Felder angibst, musst Du natürlich auch die Ausgabe-Felder oder die Datenstruktur, die Du im Fetch angibst entsprechend anpassen!
Birgitta
-
Manchmal sieht man vor lauter Bäumen den Wald nicht !!!!
Genau das war's !!!!
VIELEN DANK !!!
Similar Threads
-
By THH in forum NEWSboard Programmierung
Antworten: 18
Letzter Beitrag: 19-10-06, 14:16
-
By rr2001 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 07-07-06, 09:56
-
By klausgkv in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 08-06-06, 13:47
-
By marcel331 in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 03-04-06, 12:45
-
By Schorsch in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 08-09-05, 15:22
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