Cannot save database query

38 views
Skip to first unread message

Adang cecep suherman

unread,
Sep 13, 2016, 6:51:04 AM9/13/16
to VA Smalltalk
Hi,

Can any body help me to solve my issue.., (Visualage smalltalk 8.6.0, windows 8 64 bit) 

I can't save my database query when using database query part, with error : "Strings in the record structure cannot exceed 64K bytes"



Than'ks for your sharing

Acep

Louis LaBrunda

unread,
Sep 13, 2016, 10:03:20 AM9/13/16
to VA Smalltalk
Hi Acep,

You haven't given us much to go on but I will give it a shot anyway.  Assuming there isn't something wrong with your image I would take a good look at the query definition 
and make sure you don't have any unbalanced quotes.

This is a somewhat general error message that is issued when you try to put very large strings (or an array of some kind) in some places within the system.  I doubt you actually have a 64k byte string but have in some way accidentally created one.

If you don't find the problem, try to give us a little more information.

Lou

Adang cecep suherman

unread,
Sep 13, 2016, 11:39:03 AM9/13/16
to va-sma...@googlegroups.com
Hi Louis,
Thank for your suggestions.

This error come from smalltalk

size := anObject containsByteCharacters
ifTrue: [anObject size + 2]
ifFalse: [
self stopIfNotWordString: anObject.
anObject byteSize + 4].
size > 65535 ifTrue: [
self fatalError: MxEMc122].  "$NLS$ Strings in the record structure cannot exceed 64K bytes"
^size

and my query as listed bellow:

select count(*) from master_tbl (master_tbl only have one record)

They are any way to find query with 64 K string on smalltalk database part ?

Thank's again for your help

Acep

--
You received this message because you are subscribed to a topic in the Google Groups "VA Smalltalk" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/va-smalltalk/PE0hm33TqyE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to va-smalltalk+unsubscribe@googlegroups.com.
To post to this group, send email to va-sma...@googlegroups.com.
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.

Louis LaBrunda

unread,
Sep 13, 2016, 12:02:57 PM9/13/16
to VA Smalltalk
Hi Acep,

Try putting a breakpoint in the code you show below and then save the query.  You should then be able to look at the object in question.  See what class it is.  Look back in the trace and see what else you can learn.  If the breakpoint doesn't fire you may be in the wrong place as the error can be called from a few spots.

Good luck and keep us up to date on your progress.

Lou
To unsubscribe from this group and all its topics, send an email to va-smalltalk...@googlegroups.com.

Richard Sargent

unread,
Sep 13, 2016, 12:58:51 PM9/13/16
to VA Smalltalk
On Tuesday, September 13, 2016 at 3:51:04 AM UTC-7, Adang cecep suherman wrote:
Hi,

Can any body help me to solve my issue.., (Visualage smalltalk 8.6.0, windows 8 64 bit) 

I can't save my database query when using database query part, with error : "Strings in the record structure cannot exceed 64K bytes"

If you search the image for that string, you will discover there are four methods containing it. One of them is the pragma defining MxEMc122 and the other three reference this pool variable. All three methods referencing MxEMc122 are named #spaceFor:.

You could hack these methods to report what the string it, insert a #halt message send, or install breakpoints to let you debug it. It is possible that the stack is protected by an exception handler that will prevent directly debugging the use of these methods. If so, writing the object to the Transcript, dumping the stack (see #outputWalkback and friends), or both may be your best option.

Reply all
Reply to author
Forward
0 new messages