My apologies, I misspoke.
I should have said,
"I use the host-variable :Dtaset to include a library prefix string as a column value in the embedded run, but in the one-library interactive version it’s CHAR(‘ABC’, 3) as Dtaset."
In other words, a column that is hard-coded when run interactive but it comes from a host variable when run embedded.
----- Original Message -----
From: "Birgitta Hauser" <Hauser@xxxxxxxxxxxxxxx>
To: "RPG programming on the IBM i (AS/400 and iSeries)" <rpg400-l@xxxxxxxxxxxx>
Sent: Thursday, May 26, 2016 10:34:10 AM
Subject: AW: Results returned with interactive SQL, but not embedded
Two, Because of the above, I use the host-variable :Dtaset to include the library name in the embedded run, but in the one-library interactive version it’s CHAR(‘ABC’, 3) as Dtaset.
Libaries cannot be set via host variable.
If you want to change the library, you need dynamic SQL
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 Alan
Gesendet: Thursday, 26.5 2016 16:20
An: 'RPG programming on the IBM i
Betreff: Results returned with interactive SQL, but not embedded
Hey folks,
I don’t remember a problem like this, I’ve done this embedded SQL lots of times.
I have a sequence of SQL statements that first clear the records (with a DELETE) in two work files.
The first one is populated, then the second, with INSERT/SELECT statements.
Works like a charm when I run in in Navigator and in interactive STRSQL.
I get 737 rows and then 68, and the results are correct.
BUT! ?? When I run it embedded, I get nothing. With the EXACT same statement and syntax, with two differences:
One, I’m running the interactive version over one database schema (library) at a time, with no overrides, whereas the embedded version runs an override first because this is going to run using the data from a bunch of schemas.
Two, Because of the above, I use the host-variable :Dtaset to include the library name in the embedded run, but in the one-library interactive version it’s CHAR(‘ABC’, 3) as Dtaset.
The overrides are done using a service program procedure. The program is compiled with ACTGRP(*NEW), and the service program with ACTGRP(*CALLER). So it runs in the same activation group, which is the default for the OVRDBF command.
I’ve done this a lot, I don’t get what’s different now. Any ideas?
THANKS!!
--Alan Cassidy
CassidyA@xxxxxxx
As an Amazon Associate we earn from qualifying purchases.