When you type the text of a program or formula into Panorama, it parses and pre-processes that text into an optimized sequence of internal tokens. This process is called “compiling” the text into tokens. The advantage of compiling into tokens is performance. You only type in a program or formula once, but you may run it many times (and code may run in a loop). Parsing and pre-processing is somewhat time consuming, so Panorama takes care of that in advance. This allows the code or formula to run significantly faster when you actually need to run it.
This entire process is completely transparent and behind the scenese - Panorama takes care of everything for you without you even being aware of it. The code and formulas you type in are automaically compiled into tokens, and Panorama stores these tokens for you. You can’t see these tokens, but any procedure, field, or form object that contains code or a formula does contain a hidden sequence of tokens. Whenever you edit code or a formula, Panorama automatically updates the hidden sequence for you.
However, there is one exceptional case where you may need to manually force code/formulas to recompile. This can be necessary if a new release of Panorama uses a revised format for the internal tokens. As of October 2024 this has only happened once in the entire history of Panorama X. In that extremely rare case, you’ll need to recompile your code and formulas. You could do that manually, one item of code and one formula at a time, but that would be extremely time consuming. Instead, Panorama offers two techniques that will instantly recompile all of the code and formulas in one or more databases. This includes not only the code in procedures, but any code and formulas embedded in form objects, as well as any automatic code and formulas associated with database fields.
Note: The recompilation techniques described below assume that your code and formulas are correct. If they contain syntax errors, recompilation won’t fix that, and it won’t even report the errors. You’ll need to use other tools to find and fix these errors.
To recompile one or more databases, open the Preferences window (from the Panorama X menu) and switch to the Advanced panel. Then drag the databases from the Finder onto the Recompile Databases icon.
You can drag one database or many. The databases don’t have to be open. Once you drop the databases, Panorama will recompile all code and formulas in the selected databases. The process is usually quite quick, less than a second per database. When it is done, Panorama will display a list of the databases that were processed.
An alternate technique is to simply click on the Recompile Databases icon. When you click on this icon, Panorama will open a dialog allowing you to choose one or more databases to process. Once the files are selected press the Recompile button to complete the process.
The technique described above does not allow you to recompile multiple databases that have the same name (in different folders). If you select more than one database with the same name, it will complain that it can’t do it. However, this is possible if you first close ALL open databases. The Preferences window should be the only open Panorama window.
In this example, a Finder smart search has been used to find all Panorama databases. As you can see, there are multiple copies of many of these databases in different folders. In spite of the duplicate names, you can drag all of these to the Recompile Databases icon.
There is one drawback of this approach - it’s usually much slower. If you’ve selected a large number of files you may want to take a break while Panorama works on recompiling, perhaps have a cup of coffee or tea, or take a quick walk.
If the database is already open, you can also recompile using the View Organizer. Start by opening the View Organizer from the View menu. Make sure the database is selected in the organizer, then use the Database>Recompile ALL Code & Formulas menu item to perform the recompilation.
History
Version | Status | Notes |
10.2 | New | New in this version. |