Problem: How To make Satellite Forms 6.1 PocketPC applications launch faster
NOTE: This article applies to Satellite Forms PocketPC applications that use the CDB handheld database format ONLY. The techniques herein do NOT apply to SatForms PocketPC application using the PDB database format, which is highly recommended over the CDB format, for numerous reasons. If you are using Satellite Forms 7.0 or higher, the best approach is to use the PDB database format for your PocketPC applications.
Update for Version 8: Satellite Forms 8 no longer supports the CDB handheld database format discussed in this article. This article does NOT apply to Satellite Forms 8.
Solution: The Satellite Forms runtime engine for PocketPC needs to have have an extra record index column at the end of each table in the application. Previous versions of the SatForms runtime engine automatically created this special record index column the first time an application was launched on the handheld, which resulted in longer load times than subsequent launches of the program. This additional load time was more noticeable with larger databases (larger numbers of records). Starting with Satellite Forms 6.1, it is now possible to create this record index right in the table editor in App Designer, resulting in a quicker initial launch of the application.
With previous SatForms runtime engine versions, a numeric column named SYS_POSITION was automatically added to the end of each table on the PocketPC when an application was started for the first time. This SYS_POSITION table was needed by the runtime engine to maintain proper sorting of the data on the handheld. The creation of this additional field and filling it with correct record position data resulted in the application taking longer to load the first time it was launched, and also affected the corresponding desktop database if one was used to synchronize the data with the handheld, since it too would need this extra column. This would lead to a problem if a cross platform PalmOS and PocketPC application wanted to sync to the same desktop database tables, because this SYS_POSITION column would not exist in the database created for the Palm target.
The SatForms App Designer would ignore this SYS_POSITION column when bringing data from the handheld back into the table editor using the Upload Tables function.
With SatForms 6.1, the name of this special column has been changed to SYS_POSIDX, and it is now possible to create this special record index column in the App Designer table editor, just like any other column in your database. This change offers two benefits:
Adding the SYS_POSIDX column to your tables in App Designer is optional, but recommended for applications with larger databases or cross platform applications that need to sync both platforms to the same desktop database. If you do not add this column to a table, it will still be automatically created by the runtime engine the first time that table is opened, as in previous versions.
There are several requirements to follow in order to create the SYS_POSIDX column properly:
If you take care to follow all of these requirements and add the SYS_POSIDX column to your tables in App Designer, you will find a significant speed benefit the first time your application is launched on the handheld. The larger your application (number of tables and number of records), the more noticeable the speed improvement will be. Subsequent launches of the application will be faster regardless of whether or not you include the SYS_POSIDX column in your tables, since the runtime engine would have automatically created it in each table.
TIP: Using your desktop database application to maintain the SYS_POSIDX contents
You can create a macro in your desktop database application to fill the SYS_POSIDX field of each record with the record number (RECNO), prior to sending it to the PocketPC handheld. This ensures the SYS_POSIDX column is always prepared properly before being sent to the handheld.
Keywords: PocketPC, launch, speed, performance, database, index, data, SYS_POSITION, SYS_POSIDX
KB ID: 10009
Updated: 2010-06-22
Satellite Forms KnowledgeBase Online