Birgitta can confirm, but I when I need input from various different libraries (schemas) I use overrides instead so I can keep the static statement as is.
But for output it takes a prepare or Execute Immediate, depending on what you're doing.
Alan
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Gary Thompson
Sent: Wednesday, February 25, 2015 8:37 AM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: RE: Using host variable in embedded sql
Birgitta,
Thank you for your detailed explanation.
To check my understanding of dynamic SQL; is it true that changing the library of all tables is one case where an SQL PREPARE is appropriate ?
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Birgitta Hauser
Sent: Tuesday, February 24, 2015 11:12 PM
To: 'RPG programming on the IBM i (AS/400 and iSeries)'
Subject: AW: Using host variable in embedded sql
I second the use of dynamic SQL...
I avoid dynamic SQL whenever possible.
... and in around 95% of all cases the request can be done with static SQL.
The only situation where dynamic SQL is really needed is, if the tables, views or schemas cannot be determined before runtime.
Even though we talk about nanoseconds, dynamic SQL requires more work at runtime (Syntax Check, building the access path).
And if you won't work with parameter markers, i.e. prepare once and execute multiple times, each time the prepare statement is run a FULL OPEN (which includes the most time consuming part of the query execution, opening the data path) must be performed. That means the cursor is not reusable.
When using static SQL the chance that the ODP (Open Data Path) is reused is much higher, at least if you do not use compile Option/Set Option CLOSQLCSR=*ENDMOD and do not run your SQL Statement in a program compiled with activation group *NEW.
Mit freundlichen Grüßen / Best regards
Birgitta Hauser
"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok) "What is worse than training your staff and losing them? Not training them and keeping them!"
-----Ursprüngliche Nachricht-----
Von: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] Im Auftrag von Bradley Stone
Gesendet: Tuesday, 24.2 2015 23:50
An: RPG programming on the IBM i (AS/400 and iSeries)
Betreff: Re: Using host variable in embedded sql
I second the use of dynamic SQL...
I use them all the time when the selection, sorting and/or anything else isn't obvious and driven by user input.
Brad
www.bvstools.com
On Tue, Feb 24, 2015 at 4:36 PM, D*B <dieter.bender@xxxxxxxxxxxx> wrote:
... SQL is a striongly typed language => you can't put a fieldname
into a host variable, or into a parameter marker!!!
What would work is, to prepare a dynamic assembled string - with the risc.
that it would blow up at preparetime - but mostly there are better
alternatives.
D*B
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/rpg400-l.
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.
--------------------------------------------------------------------------------
Confidentiality Notice: This email may contain confidential information or information covered under the Privacy Act, 5 USC 552(a), and/or the Health Insurance Portability and Accountability Act (PL 104-191) and its various implementing regulations and must be protected in accordance with those provisions. It contains information that is legally privileged, confidential or otherwise protected from use or disclosure. This e-mail message, including any attachments, is for the sole use of the intended recipient(s). Any unauthorized review, use, disclosure or distribution is prohibited. You, the recipient, are obligated to maintain it in a safe, secure and confidential manner. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. Thank you.
--------------------------------------------------------------------------------
As an Amazon Associate we earn from qualifying purchases.