PanX crashing when opening specific database

One of my database files appears to be corrupted. Whenever I try to open this file, PanX crashes. Other database files are fine.

It’s a small file and a relatively new one, and alas, I don’t have it backed up.

Any suggestions on how I can recover this db file?

Thanks

The first thing I would try is to open the database with the data sheet only. You can do that with the Find & Open dialog. Open this dialog (from the File menu), locate the database in question, then right click on it and choose Open Data Sheet Only from the pop-up menu. If this works, the problem is either in the .Initialize procedure (if the database has one) or in one of the forms. I just checked your crash logs from this morning and it appears that the crash is occurring as a form is being displayed, specifically as a Text Display object is being displayed.

If it possible for you to send me a copy of this database, I would be interested in attempting a more detailed investigation.

You could also try Time Machine to get an earlier version of your file before it got corrupted. I have had to resort to this a few times in the past with a couple of files I had which suddenly got corrupted.

Hi Jim -
Open Data Sheet Only worked. And, yes… I was having issues with a procedure. Prior to the crashes, when I opened the db it opened only to the Procedure.

I would be glad to send you a copy of the db for further investigation. What’s the best way to send you a file?
Thanks, Jim

Thank you Gary

Just compress it into a zip file and attach it to an email to me.

I know this was months ago, but do you remember whether you were able to find any particular issues with the text display object? I just added a fairly long formula to a text display super object and it momentarily displayed the correct result before Panorama crashed. Trying to reopen the file the regular way just crashes Panorama again, because the database was last saved with the problematic form open. I can open with data sheet only, but I don’t know where to go from there–is there a way to open a form in design mode without first opening it for viewing? (I’m not even totally sure that would help me, since I’m pretty sure the first time it crashed was when it was in design mode).

(this is in Panorama 6.0–since this issue seemed so similar, I thought I’d tag onto it rather than create a new topic.)

I just found the graphicsmode option for opening forms, and Panorama still crashes. I have a semi-recent backup, but I’ve been working on this form for the past couple of days and if there’s a way of fixing the form, I’d be grateful.

First I would go to the older file that has a non-crashing version of the problem form. Open that form and put it in graphics mode then select Copy Form from the Edit menu. Now open your crashing file to the data sheet and then open a form other than the problem form (if there are no other forms you can create a new temporary form). From the Setup menu choose Rearrange Forms… to open the dialog window. In that dialog highlight the form that is causing the problems and then hit the Delete button. Close the dialog and with a form in graphics mode select Paste Form from the Edit menu. This should create a duplicate of your original form as it was before the crashing. You can delete the temporary form if you had created previously.

Thanks, but the form itself is what I would really like to salvage (the rest of the database hasn’t changed since my last backup). I had saved the problematic formula in a separate text editor and through some careful testing have identified the problematic part of the formula (I still don’t know why it’s causing crashes, but it deals with a rare enough case that I would be fine with removing it). So I’m still hoping for a way to get back into that form and delete/replace the text editor, or edit the formula…

Have you checked Time Lapse? You may have a more recent backup than you think. After opening your file to the data sheet, choose Time Lapse… from the File menu.

That recovers some of my work–better than nothing! I’d never used Time Lapse before. Thanks.

One last thing to try…
Have you named the TESO? If not it should be named “Text Editor” and that would be ok as long as it is the only TESO on the form. If there are more than one named “Text Editor” you may be out of luck.

Ok, assuming you have a uniquely named TESO we can try to remove it if we can get the form to open without causing a crash. I suggest opening the form procedurally to a tiny size so the TESO is never displayed which may prevent it from causing a crash. If it still crashes we are out of luck. Here is what I would try:

windowbox "200 200 300 300"
openform "The Form"  // name of the problem form
object "Text Editor"  // or the unique name you have assigned to the TESO
graphicsmode

If you have not crashed you will have the problem form open in graphics mode with the TESO selected. Now choose Cut from the Edit menu and the TESO should be removed. The above window parameters assumes the TESO is not at the very top.left of your form. I don’t know if this will work but what the heck.

Thanks for the idea… I had unfortunately not named the TESO, and there were many TESOs in the form.

I’ve mostly recreated my work at this point, starting from the Time Lapse backup.

For future reference, this should have been a new topic under the Panorama 6 category. Your post has nothing to do with Panorama X, or with Jim Ahearne’s original problem, so it would have been best addressed in a new topic.

I don’t know if this could be related to what happened to you but Panorama 6 definitely has a limit on how long the formula can be in a Text Display object. Panorama X does not have any limit on the formula length.

What is the character limit? My non-working formula had 1936 characters, and my working one has 1632.

I’m not really sure, and I don’t have time right now to dig that out of the Panorama 6 source code. My first guess would have been 255, but apparently that isn’t it. You can use the double evaluation option to put the formula in a variable, when you do that there is no limit.