Opening a Database in Diagnostic Mode

As a database is used, Panorama may implicitly trigger code to customize the operation of the database. For example, you may have set up code that runs automatically when the database is opened (the `.Initialize` procedure), when the current record changes (the `.CurrentRecord` procedure), or when a form is opened, activated or resized. See Implicitly Triggered Procedures to learn about all the ways that Panorama can be customized with implicitly triggered code.

Implicitly triggered code is a powerful technique that opens up many possibilities for extending how Panorama works. However, if misused, or if you make a programming error, it also opens up the possibility of breaking Panorama, even causing a crash. It’s even possible to get your database into a situation where you can no longer open and work on a database, because implicitly triggered kicks in immediately when the database opens, preventing you from even looking at or fixing the problem.

Starting with version 10.2, Panorama provides a special “diagnostic mode” to get around this problem. When diagnostic mode is enabled for a database, Panorama no longer runs implicitly triggered code in that database. Since the implicit code doesn’t run, it can’t cause a problem (of course it also won’t perform whatever task you intended).

To enable or disable diagnostic mode, open the Database Options dialog and go to the General panel. Use the checkbox to turn diagnostic mode on or off.

Note that diagnostic mode is always temporary. Unlike the other options specified in this dialog, diagnostic mode is not saved with the database. When you close the database, diagnostic mode is automatically disabled the next time the database is opened (unless you use the special technique described in the next section).

### Opening a Database with Diagnostic Mode Enabled

If the problem you are trying to debug is triggered immediately when the database is opened, you’ll need to make sure diagnostic mode is turned on before the database opens. For example this might be necessary for a problem with the `.Initialize` or `.CurrentRecord` procedure.

To open a database with diagnostic mode enabled you must use the Find & Open from the File menu. Start by opening the dialog, then choose Enable Diagnostic Mode from the Database menu. The display will update to show that if you open a database, the database will open in diagnostic mode. (You can also right click on any database and choose Enable Diagnostic Mode from the pop-up menu.)

Now find the database you want to open and double click on it. The database will open with diagnostic mode already enabled. This means that:

- The .Initialize procedure will not run
- Any auxiliary databases associated with the database will not open
- No other implicit procedures will run, for example .CurrentRecord, .ModifyRecord, etc.

Opening a database in diagnostic mode does not affect the window arrangement – the database will still open with whatever windows were open the last time the database was saved (or your custom arrangement if you’ve set up an initial window list – see Newly Opened Database Window Arrangement). If you want to open up just the data sheet, right click on the database in the Find & Open dialog and choose Open Data Sheet Only.

When you’re finished with diagnostic mode, you can use the Database Options dialog to turn it off and resume normal operation for this database, or you can simply close the database. When the database is re-opened again it will be in normal mode, unless you again use the Find & Open dialog to re-open it in diagnostic mode.

History

Version | Status | Notes
10.2 | New | New in this version.