× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Alan,

Agreed, and file overrides were my first choice.

It's been a couple of years, but the first time I attempted a program
where data libraries changed as the user selected different company
divisions to process, I was not able to get consistent and reliable results,
hence the change to dynamic SQL.

Prior to this, users were required to exit from a division, select the
next division and perform whatever task, and repeat through the
seven divisions we have.

I think part of my problem has to do with the application we currently
use which was written over 35 years ago (and is scheduled to be replaced
by a new system hosted "in the cloud"). This application is also noted
for object locks on programs so that local program objects we "link into"
this application will be locked such that when we need to re-compile
during business hours to fix a problem, users whom have been using
that object must exit the application and re-enter to get a current copy
of the newly created program object.

-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Alan Cassidy
Sent: Thursday, February 26, 2015 10:13 AM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: RE: Using host variable in embedded sql

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.
--------------------------------------------------------------------------------

--
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.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.