Longchar

sdjensen

Member
Code:
def var cc as longchar no-undo.
def var idx as int no-undo.
do idx = 1 to 50000:
cc = cc + string('1,'). 
end.
message num-entries(cc,',') view-as alert-box.
entry(35000,cc,',') = '!'. /* raises the error flag*/
message num-entries(cc,'!') view-as alert-box.

I have tried it on 10.0b.04 , 10.1A, 10.1A01, 10.1A02, 10.1C and it does not work any of the versions. On 10.0b04 longchar and entry should not be used as they do not work at all!

Have anyone a solution?

I have seen a lot of "solutions" on the knowledge base, but they all say that 10.1A should work.

My code is not that simple as the above version shows, it is only a example if anyone would like to try it on their version of progress.
 
Doesn't work on my 10.1A02 here.

Looks like the ENTRY function doesn't support longchars when using it for assignment purposes. In your example, this works:

message
entry(35000,cc,',')
view-as alert-box.

So, reading the entry works. However, when you try to assign a value to the 35000th entry, it blows up.

If the ENTRY function is supposed to support longchars for assignment (and I can't see why it shouldn't), then this is a bug and should be logged with tech support.
 

newprog

New Member
Doesn't work on 10.2A. I noticed that if you change the 35000 to 20000 you get the following error:

"Could not convert LONGCHAR to cpinternal. (11669)"

The LONGCHAR contains characters which are not in the cpinternal codepage, or the converted string is too large.


If you then lower it to 16000 it works OK. As AndrewSmith says sounds like a bug for tech support.
 

sdjensen

Member
Thanks for your testing.
I have reported it to Progress and they are looking into the problem.
Lucky they where able to reproduce the problem so now I awaiting their answers.

I'll update this thread when I hear from them.
 

sdjensen

Member
The bug OE00182095 (Entry function returns errors when updating longchar variable) has been scheduled to be fixed in 10.2B, which should be available around the end of the year.
 
Top