Re: SQLSTATE 42703 in SQLRPGLE program

Brian Parkins <[email protected]>
Newsgroups gmane.comp.lang.as400.rpg
Message-ID <[email protected]>
A very quick glance - should there be a colon (:) in front of SQLSTMT1 
on the PREPARE?

 >> prepare dynStmt1 from SqlStmt1;

Brian.

On 19/01/2026 19:48, K Crawford wrote:
> Below is part of my SQLRPGLE program.
> I am getting SQLSTATE 42703 on the PREPARE statement.
> What could it be?
> The two ? (dynamic selections) SSAN is numeric and PLANID is char.  I have
> tried putting quotes around the ? for PLANID, but did not work.
> I have copied this SQL into ACS-RSS and it runs fine.
>
>         Dcl-C SELECT_ActPlan CONST(' Select e.cobret, +
>         e.qbnum, e.cobrarnum, e.ssan, +
>         p.cvglevl, p.cvgtype, p.status, p.planid, +
>         p.planstrt, p.evntdate3, +
>         p.fdoc, p.ldoc, +
>         p.cbrstrt, p.cbrstop, +
>         p.termdate +
>         from lib1/cobraE e +
>         join lib1/cobraP p +
>         on e.qbnum = p.idnum +
>         where +
>             (e.ssan = ? ) +
>         and (p.planid = ? ) +
>         and (p.status in ( ''E '', ''ED'', ''E4'', ''TE'')) +
>         and (to_char(current date,''YYYYMMDD'') between p.PlanStrt +
>          and (case when p.EvntDAte3 = 0  then 20991231 else p.EvntDate3 end)
> +
>             ) +
>         and (to_char(current date,''YYYYMMDD'') between  p.fdoc and p.ldoc) +
>         AND (to_char(current date,''YYYYMMDD'') between  +
>              p.cbrstrt and p.cbrstop) +
>         AND ((to_char(current date,''YYYYMMDD'') between +
>               p.cbrstrt and p.TERMDATE) +
>              or (p.termdate = 0))');
>
>   Dcl-DS ActPlanDS Qualified;
>           cobret char(1);
>           qbnum zoned(7:0);
>           cobrarnum zoned(7:0);
>           ssan zoned(9:0);
>           cvglevl Char(4);
>           cvgtype Char(9);
>           status Char(2);
>           planid Char(40);
>           planstrt zoned(8:0);
>           planend zoned(8:0);
>           fdoc zoned(8:0);
>           ldoc zoned(8:0);
>           cbrstrt zoned(8:0);
>           cbrstop zoned(8:0);
>           termdate zoned(8:0);
>         End-DS;
>
>           SqlStmt1 = SELECT_ActPlan;
>           // Prepare the statement
>           exec sql
>             prepare dynStmt1 from SqlStmt1;
>           // Declare a cursor for the prepared statement
>           Exec SQL
>             DECLARE dynCursor1 CURSOR FOR dynStmt1;
>           // Open the cursor with parameters
>           Exec SQL
>             OPEN dynCursor1 USING :w_ssan
>                                  ,:w_planid;
>           // Fetch the data into your data structure
>           Exec SQL
>             FETCH dynCursor1
>               INTO :ActPlanDS;
>           // Check if successful
>           If SQLSTATE = '00000';
>             // Process your data
>
>
>

-- 
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: [email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription related questions.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.