On Dec 14, 2012, at 11:12 AM, Bill Steele <[log in to unmask]> wrote:
> 8 keys. You'd think it could manage that.
>
> On Dec 13, 2 012, at 1:42 PM, Emmanuel LEVY <[log in to unmask]> wrote:
>
>> Do your records include many many keys?
>>
>> We were hit by a limit on the number of "keys" that AppleScript can store, those "keys" including the records' keys, all the variables' names and all the handlers' names.
>>
>> This is easily tested:
>>
>> --------
>> display dialog "ready to bug?"
>> repeat with i from 1 to 10000
>> try
>> run script "set r to {|" & i & "|:1}"
>> on error -- Internal Table Overflow: your app is no longer usable, quit ASAP
>> display dialog i
>> exit repeat
>> end try
>> end repeat
>> --------
>>
>> Emmanuel
>>
>> On Dec 13, 2012, at 7:28 PM, Bill Steele wrote:
>>
>>> I have a script that reads a series of Filemaker records, doing some processing and writing out a file based on each one. As it goes along it accumulates some information (title, abstract, filename, etc.) about each item in an Applescript record; at the end it read throughout the recoed and writes out a summary -- essentially a table of contents.
>>>
>>> All fine until we upgraded to Mountain Lion. Now it reads two or three records and then hangs in the middle of the next one. At first I though one of the Filemaker records was corrupted, but switching them around doesn't change the results. It seems as if Applescript is saying "Hey, I can only do so much of this and then I have to quit." The information read in from the Filemaker record presumably is overwritten each time, as it's assigned to the same Applescript variable. The best idea I can come up within that Applescript can only store so much information ion its own record. Or that the stuff being read in *doesn't* feet flushed.
>>>
>>> Ran the same script on a machine running Tiger. No problems.
>>>
>>> Any ideas?
I got around some hangs by re-writing my scripts to work outside applescript in the shell
here is a sample from my filemaker button applescript call the terminal and execute the heavy lifting script in bash or perl.
display dialog " Run SomeScript in /usr/local/bin " buttons {"YES", "NO", "BAILOUT"} default button 3
--If user is great
if result = {button returned:"YES"} then
tell application "Terminal"
do script "/usr/local/bin/myscript.sh" -- opens a new window
display dialog " keep window open ? " buttons {"YES", "NO", "BAILOUT"} default button 3
if result = {button returned:"YES"} then
--close window 1
else if result = {button returned:"NO"} then
close window 1
--If user is a exit
else
display dialog "Excuse me pal!"
end if
end tell
--If user is no
else if result = {button returned:"NO"} then
display dialog "whats yer deal"
--If user is a exit
else
display dialog "Excuse me pal!"
end if
|