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



I thought I was being "modern" and making a new report app use embedded SQL but I am about to junk it and go to OPNQRYF that I know works.

I have a program that has one file only and that is the external DDS printer file.

When I coded the FETCH Into phrase listing the host variables the compiler gave me an SQL0312 for each stating that they were not defined or not usable.

After some archive plundering I found a hint that the precompiler didn't understand printer files so I tried putting the fields in a named DS and using that on the FETCH. The program then compiled but upon execution I get an SQLSTT of '01503' and the job log has a SQL0030 about not enough host variables for the result values.

Another archive dive hinted that I might need the host indicators. So I added the DS with five integer fields and added it to the FETCH. Back to the SQL0312 and complaining about the host indicator DS.

I even went back to naming the fields on the FETCH (the form I prefer and with the DS still in place to declare them) and adding individual indicator fields with them. That returned to the SQL0312 complaining about the variables (but not the indicators).

Next archive dive found someone that used an array for the indicators instead of the DS. Tried that and it would compile but then on execution I would get the ole MCH1210 target too small. BTW the indicators are all filed with 16448 and SQLSTT is '01503'.


<Background>
V5R4 all PTF as of 2/11/2008

CustNum happens to be the only numeric field and is the same as in the database.

d RecIn ds

d CustNum

d CFNameRSVP

d CLNameRSVP

d CDelegate

d VoteDstDsc

d RecInNullMap ds

d RecInNullAr 5i 0 dim(5) inz


EXEC SQL
DECLARE C1 SCROLL CURSOR FOR
SELECT UBD014P.CUSTNUM, UBD014P.CFNameRSVP, UBD014P.CLNameRSVP,
UBD014P.CDelegate, UBD716P.VoteDstDsc
FROM UBD001P AS UBD001P, UBD014P AS UBD014P,
UBD716P AS UBD716P
WHERE UBD014P.CUSTNUM = UBD001P.CUSTNUM
AND UBD001P.CVOTEDST = UBD716P.VOTEDST
and UBD001P.CUSSTS = 'A'
and UBD014P.CRSVP = 'Y'
ORDER BY UBD716P.VoteDstDsc ASC, UBD014P.CLNameRSVP ASC,
UBD014P.CFNameRSVP ASC
FOR READ ONLY;

exec SQL
Open C1;

<snipped>

exec SQL
Fetch next from c1 into :RecIn;
// this compiles

<alternate>

exec SQL
Fetch next from c1 into :RecIn :RecInNullMap;
// this complains the RecInNullMap is not usable

<alternate>

exec SQL
Fetch next from c1 into :RecIn :RecInNullAr;
// this compiles but dies on execution

</Background>

There has GOT to be a simpler way that WORKS! Oh yeah, OPNQRYF.

Roger Vicker, CCP


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

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.