I think Vince is on the money.  The alltrim function is ignored.  Try
running the query with str(nmonth,4) and the output field width will
change to only allow room for 4 characters.

HALinNY 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Vince Teachout
Sent: Friday, July 14, 2006 18:03
To: ProFox Email List
Subject: Re: Alltrim(str(<numeric>)) works, but why?

Lew Schwartz wrote:
> Vince:
>       I think you meant to suggest I look at len(alltrim(str(1))), no?
>   
OK, in an attempt to rectum-fy my first brain-fart, I did a little more
experimenting, took your original query, and broke it into bits, plus
the original expression, like so:

select alltrim(str(nMonth)), alltrim(str(nYear)),
alltrim(str(nMonth))+"/"+alltrim(str(nYear)) FROM mycrap

The queries gets the VALUES you would expect, but the DISPLAY STRUCT
shows this:

Field Name        Type        Width
EXP_1            Character     10
EXP_2            Character     10
EXP_3            Character     21

Going back to my brainfart answer, we see that Str(nInteger) without the
qualifying length parameters results in a default len of 10:
? Len(str(1))   && 10

My supposition is that the query *thinks* it is reserving room for the 
longest possible result.   ie, it "knows" that Alltrim() could result in

a varying length, so ignores that and concentrates on Str().  It "knows"

that the longest possible result for a Str() with no parms is 10, so it
reserves 10 chars.  Of course, in this case, it is flat out wrong,
because your numeric is only 4 digits, so could never get larger than
that.  But, I bet that this is what is going on:

"A Str() operation, with no length parms,  on a numeric field COULD
result in up to 10 chars, so I need to reserve that."

Instead of:

"A Str() operation, with no length parms,  on a numeric field COULD
result in up to Max(Len(Field), 10) chars, so I need to reserve that."

That's my guess.  I feel I have redeemed myself, and am now gathering my
tattered dignity around myself, and storming off in a huff towards the
beckoning weekend!



[excessive quoting removed by server]

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to