I'm glad that the scrambled output buffers was not a psycho. Imagine what he would do
in databasic.
I worked at MCD when PQN came out and we got tricky as a PQ proc couldn't reference a
PQN proc and vice versa. So you either changed all the procs or bounced the command
off the MD. Since MCD didn't get PERFORM until around 1984-5, I got real good with PQN
to the point of doing file read/writes, readnexts, iconv, oconv and multiple commands
on the same line (saves the branching). A great improvement was being able to validate
date answers using iconv instead of pattern matching as (2n/2n/2n) which 12/34/56
would be acceptable. For whatever reason, i really understood procs with all the
buffers and user exits.
Speaking as someone very versed in both F and A correlatives, i initially missed them
with my UD clients. I did get the hang of simple I types and i don't think i will ever
enjoy UD's version of stacking with I types. I like the OCONV(@ID,"T1,2") direct
expressions and you'll probably never catch me writing the SUBS -IFS(-IFS ones as
unfortunately all the examples i've seen in my clients are very hard to read and
understand.
One client had their system converted from Microdata to UD and there must have been a
dict converter as it put the original 10 line dict on line 10 and built the
appropriate 6 line dict. Unfortunately since the 10 line variety allows the false
start of primary field, many converted dicts look like this:
002 F99; F1; F2;@[EMAIL PROTECTED]
because the source dict had 002=99 and 008=A;F1+F2. Given the three choices to assign
to 002 in a 10 line dict item, many earlier programmers fell into a bad habit of
putting all of their calculating dict items either in 002=0 or 002=99. Once you
reference a field in 008, it doesn't matter what's in 002. So the converter wrote the
above 002 with the unnecessary F99.
I do enjoy writing SUBR dict items as i try to make those subs usable by regular
databasic programs as well. There are a bunch of things that i like doing in SUBR
(UD/UV or D3) that you cannot do in any real dict item. Very handy.
thanks
----- Original Message -----
From: [EMAIL PROTECTED]
To: U2 Users Discussion List
Sent: Thursday, February 05, 2004 1:23 PM
Subject: Re: [UD] Determining if list exists
Good Heavens, Mark, I think you kind of missed the tone of my post. :-) I see you
sent it just before midnight, you must have been tired.
I suppose after rereading my post in the light of a new day, you will see that I
understand why the code I copied from a prior post was poorly written. (Don't believe
in your wildest dreams, I would have written something like that.) And, as you are
rereading my posting, you will also come to understand that the second proc was a
joke based upon the poor understanding of procs by so many programmers. If you got
the joke, you must understand something about proc.
After 21 years in PICK, I know PQ procs and how to use them to best advantage. I
have to admit PQN procs I have to look up syntax. I must admit, as much as I like
procs, I don't use them much anymore.
Now if only UniData would support F-correlatives... (Mark, that is another joke. :-)
)
Take care,
Bruce M Neylon
Health Care Management Group
"Mark Johnson" <[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED]
02/04/2004 11:52 PM
Please respond to U2 Users Discussion List
To: "U2 Users Discussion List" <[EMAIL PROTECTED]>
cc:
Subject: Re: Re: [UD] Determining if list exists
Your proc example doesn't need the P after the STON in line 3. The reasons you have
the STON, H< and P(x) on lines 7,8,9 is twofold. The first reason is that in a typical
GET-LIST/LIST pairing, your list statement could exceed the maximum size of the
Secondary Output buffer (STON without the H< and P). That required Secondary Output
buffer extensions of H<< which needed to be properly placed and when changes were
made, you had to recalculate where they belonged.
Using the STON, H<, P then the HLIST put the entire LIST statement into the Primary
Output buffer which is seemingly limitless. Like a paragraph, you were executing 2
consecutive statements.
The downside is that if the preceeding SELECT doesn't yield any items or the
GET-LIST comes up empty, the HLIST will process your report against the entire file.
Thus the IF E=401 concept was introduced to validate the active list.
That psycho couldn't possibly have programmed that on purpose. I've seen some
excessive use of STOFF/STON pairs, ie STOFF after a P when it comes automatically.
(Like RI then S1. Duh, RI implies S1). The fact that the psycho alternated their two
sentence's words in consecutive statements was either to hide some code or fool
around.
my 1 cent
------------------------------------------------------------------------------
--
u2-users mailing list
[EMAIL PROTECTED]
http://www.oliver.com/mailman/listinfo/u2-users
--
u2-users mailing list
[EMAIL PROTECTED]
http://www.oliver.com/mailman/listinfo/u2-users