Chris, how are you setting the values in the EZDSQLF2 data structure?

I think you have correctly defined SQLStuff over these two subfields
D EZDQLSTL 235 238I 0
D* Length of SQL Stmt text@A1A
D*EZDSQLST00 239 239
D* Varying length
D* /* SQL statement text @B2C

but I suspect that when you try to assign SQLStuff to Upper, the EZDQLSTL
value has not been set yet, so it has the value x'40404040' = a huge
decimal number, much bigger than the maximum allowed value of 32000 from
your definition of SQLStuff.

-- Barbara

Subject: Re: How do I clip a vary length field?
From: Chris Holko <christopherholko@xxxxxxxxx>
Date: Wed, 15 Jan 2020 13:43:10 -0500

Okay, I am truly lost here. I am missing something really simple. this is a
quick test program that fails when called by the exit with RNQ0115 when it
does the upper=sqlstuff

RNQ0115 is Length of varying length variable is out of range.


/copy qsysinc/qrpglesrc,ezdaep
Dcl-s pEZDQLSTL pointer inz( %Addr( EZDQLSTL ) );

Dcl-s SQLStuff VarChar(32000: 4) Based( pEZDQLSTL );

Dcl-s Upper Varchar(128);

dcl-pr ODBCEXIT extpgm('ODBCEXITN');
allow char(1);
datain likeds(EZDSQLF2);

dcl-pi ODBCEXIT;
allow char(1);
datain likeds(EZDSQLF2);

allow = *on;
Upper = SQLStuff; // This will truncate to 1024 if needed.

*inlr = *on;


This thread ...


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

This mailing list archive is Copyright 1997-2020 by 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].