-
SQLRPGLE
Hallo Gemeinde!
Ich hätte da mal wieder eine Frage zu einem SQLRPGLE-Programm.
Im Programm habe ich im Moment mehrmals ein SQL, welches bis auf die letzte WHERE-Bedingung identisch ist.
Exec SQL
Select Wert1, Wert2, Wert3,.... into :XDatenSQL
from Myfile where Feld1 = :XDAT and Feld2 = :WASauchIMMER
and hier dann der abweichende Teil
Diese Anweisung kommt dann öfters.
Jetzt Wollte ich für die Lesbarkeit des Programms das SQL als String definieren
Anweisung_Alle = 'Select ...'
und dann
Anweisung_SQL = %Trim(Anweisung_ALLE) + abweichender Teil
Danach dann ein
Exec SQL
Execute Immediate :Anweisung_SQL;
Nur so funktioniert es wohl nicht, wie ich es mir gedacht habe.
Wie müsste es richtig aussehen ??
Viele Grüße
Ronald
-
Code:
SQLSTM 3064A VARYING
SQLSTM = 'SELECT FLD1, FLD2, ... FROM MyFILE
SQLSTM = SQLSTM + 'WHERE BED1 AND BED2..'
EXEC SQL PREPARE STMT1 FROM :SQLSTM
EXEC SQL DECLARE C1 CURSOR FOR STMT1
EXEC SQL OPEN C1
EXEC SQL FETCH INTO :VAR
EXEC SQL CLOSE C1
So funktioniert es bei mir V6R1 & V7R1 ...
-
Läufst du da nicht in die Falle einer SQL-Injection?
-
OKay,
ich dachte ich kann mir den PREPARE, DECLARE,... Sparen
Dann werde ich das mal so machen
-
Zitat von Pikachu
... ein vermeintlich schlauer Spruch, unpassend angebracht!!!
- solange der Rest des Statements nicht zugänglich ist, passiert da garnichts!!!
- die üblen Beispiele, die gerne für Injection angebracht werden, funktionieren mit DB2/400 nicht, da der prepare keine 2 Statements durchlässt!!!
D*B
PS: gegen Injection ist ein einfaches Kraut gewachsen, filtern des Eingabestrings.
-
Mit select ... into :xDatenSQL ... nutzt du ja eine Host-Variable (xDatenSQL) innerhalb deiner SQL Anweisung. Das geht nur, wenn du eine "echte" SQL-Anweisung hast (also statisches SQL). Wenn du dynamisches SQL machst, hast du ja erstmal keine echte SQL-Anweisung mehr, sondern einen String, der später interpretiert wird. Da kann er die Hostvariablen dann nicht mehr erkennen. Deshalb ist der Cursor notwendig.
Similar Threads
-
By iseries_user in forum NEWSboard Programmierung
Antworten: 14
Letzter Beitrag: 11-05-16, 10:13
-
By dschroeder in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 18-12-15, 12:01
-
By Toschie in forum IBM i Hauptforum
Antworten: 12
Letzter Beitrag: 02-02-15, 14:28
-
By ExAzubi in forum NEWSboard Programmierung
Antworten: 10
Letzter Beitrag: 10-11-14, 10:12
-
By B.Hauser in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 01-10-01, 17:31
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