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



Thanks for jumping in, Vern, I was in a meeting for the past hour....

I do think that the below can be used with RUNSQLSTM, if you do the
following:

CRTPF FILE(MYFILE) RCDLEN(82)

In this example, the real record length is 80, with 2 positions for CRLF.

Then, do this in the RUNSQLSTM:

Insert into MYFILE (MYFILE)
(
select
/* first part */
AAA1 concat
/* numeric part, right justify with floating left - sign */
/* this is the leading blanks - 10 because 8,2 */
/* can have a decimal AND an optional sign */
substr(cast(' ' as char(10)),1,
   10 - length(strip(char(BBB2), b, ' '))) concat
/* the number itself with decimal, lefthand sign, */
/* and denuded of blanks */
  strip(char(BBB2),b,' ') concat
/* text */
CCC3 concat
/* CRLF */
x'0d25'
from yourlib/yourfile
)

Then, do a CPYTOSTMF, specifying ENDLINFMT(*FIXED).

Loyd

-----Original Message-----
From: Vern Hamberg [mailto:vhamberg@centerfieldtechnology.com]
Sent: Wednesday, November 06, 2002 3:32 PM
To: midrange-l@midrange.com
Subject: RE: AS/400 app FTPs file to IFS???


Dan - response inline

At 12:19 PM 11/6/2002 -0800, you wrote:
>Loyd, Vern,
>
>I'm sure this may be syntax you're familiar with, but as an SQL
>neophyte, I have no idea what's going on here.

I don't blame you - some of this is pretty to all of us.

>1) Looking at the SQL reference, the syntax for CAST is not quite
>concise.  Is your usage of it used to force "columnized" output?

Yes, basically. E.g., cast(' ' as char(11)) turns that single blank into an
11-character string of spaces. I used to have to do this with a hard-coded
11-space literal, but this is more maintainable, I think. You know how long
a thing you're working with.

>2) Your SQL example uses literals.  Can you restate the example
>    using field names from a database file?  For this example, use:
>       Field: AAA1  defined as   4A
>       Field: BBB2  defined as 8,2S
>       Field: CCC3  defined as  20A

Actually, I don't think SQL strips the trailing blanks of fields in
concatenations, so you probably don't need all the casts on the field names
(right, Loyd?). So maybe this'd work (-- is SQL for comment in QMQRY source)

select
-- first part
AAA1 concat
-- numeric part, right justify with floating left - sign
-- this is the leading blanks - 10 because 8,2
-- can have a decimal AND an optional sign
substr(cast(' ' as char(10)),1,
   10 - length(strip(char(BBB2), b, ' '))) concat
-- the number itself with decimal, lefthand sign,
-- and denuded of blanks
  strip(char(BBB2),b,' ') concat
-- text
CCC3 concat
-- CRLF
x'0d25'
from yourlib/yourfile

Result is

asb   -1234.30This is text          <crlf>

from a file with field values "asb ", -1234.3, "This is text       "

>3) Using RUNSQLSTM, how do I specify to which file the output should
>go?

You can't with RUNSQLSTM, but you can with STRQMQRY, the QM equivalent Loyd
mentioned.

Once you have the output file, do a CPY to IFS with DTAFMT(*BINARY) - you
have no choice, then another CPY that changes it to ASCII.

COOL!!



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.