The PalmPilot is a perfect information gathering/lookup device. A good way to take
advantage of this fact is with a database program. Databases let you collect and view
data. There are several available ranging from freeware to commercial. I’ll be
reviewing all of them. Let me know if I have overlooked any other database programs.
List v.95 by Andrew Low is a very
simple database program that will let you keep track of lists of information. Some uses
might be for lists of books, CDs, or Videos. This software is limited to just 3 fields.
Two of the fields you can name (max size 120 characters) and the third field is a NOTES
field (like a memo – max size 4k). List also limits you to just 12 databases.
The information is displayed in a two column list on the screen. You have the ability to
display either field1 or field2 first. Which ever field you choose as the first field in
the display order is the field that is used to sort the data (alphabetically). If you tap
on a record, it is shown on a screen by itself with any notes you may have.
The only navigation type options that you have in the listview are the screen up/down
arrows, hardware scroll buttons, silkscreen Find button and graffiti. You can also write a
graffiti character, and if this letter matches the first letter in one of the items in the
current category this record is scrolled to the top of the screen and the entry is
highlighted. Records can also be categorized.
Other features for each database are: Write Protect (makes database read only), Backup
Next Hotsync (supposed to manually toggle the backup bit of the database…it also would
not remain activated when I would go in and out of the customize screen), Automate Backup
(when set will backup the list any time it is edited), Select Database on Launch (brings
up the database picker screen each time you start the app).
List also comes with a command line DOS based application that is used to convert desktop
databases from .csv files to .pdb files. This is not a conduit, just a simple way to get
data between Pilot and PC.
I found List to be slow at displaying data on the screen. I downloaded an X-files
episode guide made for List on both my Palm III with TRG 8meg card and PalmPersonal. This
list had 106 records in it. Both units were equally slow at displaying the memo field in
each record. They would display slowly line by line till the screen was full. Simple lists
(those without the memo field) displayed much quicker.
Easy to use.
Limited to just 3 fields.
Limited to maximum of 12 databases.
Sluggish display of large memo field.
Mobile Generation Software’s MobileDB
v1.3 database program comes in two flavors. A shareware version and a Freeware version.
The freeware version is a read only version. You can not modify the databases on your
handheld. The registered version of MobileDB allows you to have a maximum of 20 databases
(2 in the unregistered version). Records can have 20 fields with up to 200 characters per
You can navigate with the hardware buttons which provides you with pseudo one handed
operation through the data. Unfortunately, there is no way to actually select a record
without tapping on it. I would love to see some method of selection via the hardware
buttons so that you could have a totally one handed operation.
MobileDB has built in sorting and filtering options. Sorting can be done on Primary,
Secondary and Tertiary fields. These fields can then be sorted alphabetically or
numerically and ascending or descending order. You can also use Filtering to show only
specific records. 3 filters can be set to look for text in specific fields. When the
filtered records are displayed, a count at the bottom of the screen shows how many records
matched. You can tell when a database has a filter set on it by the small reverse F in the
upper right corner of the screen. Tapping on this will turn off filtering so that all
records are displayed.
I did find a bug in the sorting/filtering. If you go into the setup screens for these
features and setup certain sorting and filtering options, once you leave these screens and
come back, your settings are gone. But, the sorts and filters are still being applied to
Some other features that MobileDB has are the ability to adjust the width of the field
columns, backup of database during hotsync, and Find lets you search for text in all
fields or a single selected field. One nice thing about the Find feature after you
search on something, a little button with an R on it shows up at the top of the screen.
Tapping on this button causes it to do a repeat find.
There are a few little things that I don’t quite like about MobileDB. One thing is that
you have to actually go into a database in order to delete it. It would also be nice if
the database list screen would show how many records were in each database and even how
large the databases were. I found that the record indicator that showed how many records
were in the currently opened database at the bottom of the screen would sometimes just
There are desktop converter programs available from Mobile Generation that will allow
you to convert a .csv files and HTML tables to MobileDB databases. The Windows converter
app is a huge file… the archive alone is ~2.3meg in size. There is a converter for the
Mac as well. Rob Tsuk has also written a MAC based
Good sorting and filtering options.
Hardware buttons useful for navigating through records.
No field type choices. They are all strings.
JFile v3.0f by Land-J Technologies was
the first full featured database program available for the PalmPilot. Since its release,
many features have been added to make it a very powerful application. JFile allows you to
have a maximum of 30 databases (1 in the unregistered version), 20 fields per database,
with field names up to 20 characters and 500 characters per field.
Databases can be composed of the following field types:
String – up to 500 characters (numbers,letters,symbols)
Boolean – check box that you can tap to check or uncheck in the database list view
Date – date field that pops up a calendar that you can select the date from
Time – time field that pops up a time picker that you can use to input a time of day
Popup – pops up a listbox that you can pick an element from or edit the elements
Int – whole number
Float – number (including decimals)
While viewing a database, you can tap on any of the column headings to sort the database
by that particular column/field. A menu option to sort the database with secondary and
tertiary sort fields is also available. You can also set up filters that look for a string
in a specific field or all fields. You can specify that the string must be at the
beginning of the field or even set the filter to exclude matched records.
Speaking of column headings, You can adjust the width of the field columns in the list
view by tapping on the column heading. To see the other fields that are past the edge of
the screen, you have to press the onscreen scroll button. You can also adjust the the
column widths in the detail view though.
|JFile will allow you to do column totals. You can click on a column title|
(i.e. the field name), and you will be presented with a list of options, one of which is
‘Column Totals’. By click on this, you will be shown the totals for that
particular column. For integers and floating point numbers, the total will show the number
of records and the total of the numbers. For checkbox/boolean type fields, this will show
you the number of checked vs. unchecked boxes. All other field types will show you the
number of records in the display. NOTE: The totals are based on the current filter, so
that if you have a filter on that is showing 20 out of 40 total records, the totals will
be based only on those 20 records in the filter. This is a very powerful feature.
JFile has some other useful features such as the ability to export a record to a memo
in MemoPad or duplicate a record. You can also use JFile .pdb databases in Flash ROM, in
read-only mode, however you must be running the latest 2.10 (or later) version of TRG’s
Flash Builder application. For security, you can set an individual password for each
database. This is done from the Database Prefs menu option while viewing a particular
database. The password you set can be up to 10 characters in length. It will be required
to enter this password each time you try to access the database from the Main view of all
JFile comes with several PC based converting tools. A DOS command line version, and
Win95 version are included. A non-US DOS version is also included. These converters will
convert back and forth from .csv and JFile .pdb files. Rob Tsuk has also written a MAC based converter.
JFile is a great program for the price. The only real feature that it doesn’t have that
I wish it did is a way to navigate from record to record without having to tap on the
Variety of field types.
Have to use screen taps to navigate record to record.
HanDbase v1.10 by DDH Software is a very full
featured database program that allows you to create little database applets. It has all
the features of JFile and MobileDB and then some. HanDbase allows you to have a maximum of
30 databases with a maximum of 30 fields in each database.
Databases can be composed with the following field types:
Not Used field – choose if you do not wish for any data to be stored in this field
Text field – up to 255 characters (numbers,letters,symbols)
Integer field – whole number
Float field – numbers that can have a decimal point or comma in them
Date field – date field that pops up a calendar that you can select the date from
Time field – time field that pops up a time picker that you can use to input a time of day
Popup field – pops up a listbox that you can pick an element from or edit the elements
Check box field – check or uncheck box
Note field – MemoPad-type notes (up to 2000 characters in length) and a popup list to
insert common phrases, words, etc
Image field – capture a pen-drawn image, or a handwritten signatures using this field type
Calculated field – perform operations (+,-,*,/,min,max or average) on two fields or
Unique field – automatically filled with a value unique to that record
Heading field – organize sections of your database with a bold, centered, heading. Doesn’t
Link field – starting point for linking two databases together
Linked field -ending point for linking two databases together
DB popup field – similar to a Text field, except the popup choices come from a field of
The first screen that you see when you start HanDbase is the database picker screen.
This screen will allow you to open, modify, delete or create a new database. Databases can
be categorized so this screen will also let you pick which databases to view based on the
|Creating a new database is easy. A picker screen allows you to|
select a field, name it, choose what type it is, how many pixels are shown (column width),
and if it is to be visible or not. Also, some field types allow you to create a
popup list of commonly used values. This is great for fast data input once the database is
setup. Then, when you go to insert data, you just tap on the field, a popup is displayed
allowing you tap on the desired item.Once your database has been created, you can also
arrange the field order.
|Navigating through a HanDbase database is easy. On screen scrolling is|
available in 4 directions. Hardware buttons can also be set to scroll through the
database in four directions. When this option is set in the preferences, the up/down,
address and to-do buttons will allow you to move through the records. The first
column of data stays static on the screen as you scroll left or right through the other
fields. I really like this feature because you don’t need to use the stylus (unless you
want to) to navigate through the database. It would be nice if there was a way to
actually select the record without tapping on it though.HanDbase has very good sorting
and filtering options. You can easily sort by clicking on field column heading. You can
sort in either forward or reverse order for each field.
|You can also tap the Sort button and set up 3 levels of sorting on your|
choice of 3 fields. As for filtering, HanDbase has better options than JFile and
MobileDB. With HanDbase, 2 separate filters that can be set on 2 fields. Different options
appear based on what type of field that you select to filter on. For example, if the field
is a string, you can put the text that must be contained in that field as a filter. If the
field is a number, you can set a range that the number must be in. If it is a date
or time, you can specify the range it must be in. These options make HanDbase quite
powerful. Using the Find button, you can also do searching globally, on specific
field or by case sensitivity.
The most exciting feature of HanDbase is the database linking feature. With this
feature, you can create multiple databases and link them together. This requires that you
use the Link and Linked field types. You can link two databases together
relationally so that one record of one database acts as a key to other databases. This
allows you to jump from one database to the related items in another database. These
links show up as buttons within the record. Pressing the button follows a link to
jump to the next database that shows only those records belonging to the first database’s
key. An example of linking might be a recipe database. You have two different
databases, one for the recipe and another of ingredients. Using the linking, you could tap
on the recipe in the recipe database and it would show only the ingredients that were
related to it in the ingredients database.
Some other features that HanDbase has are backing up the database during hotsync,
ability to optionally assign a password for each database that would be required for
viewing and editing the database, and the exporting of one or all records and reports to
Speaking of reports, they can be run on Integer Fields, Float Fields, Checkbox fields,
and Calculated fields. The report output for Float Fields, Integer Fields, and Calculated
fields contains the following values:
Num Entries – Number of entries
included in the report.
Min Value – Minimum value of the
entries included in the report.
Max Value – Maximum value of the
entries included in the report.
Sum – Total of the entries
included in the report.
Min Total – Lowest value of the
running Sum in the report.
Max Total – Highest value of the
running Sum in the report.
Average – Average value of the
entries (Sum/Um Entries)
The report output for Checkbox fields contains the following values:
Num Entries – Number of entries
included in the report.
Items Checked – Number of entries
included in the the report that have this value checked.
Items not-Checked – Number of
entries included in the the report that do not have this value checked.
Percentage Checked – Percentage
of entries included in the report that have this value checked.
Percentage not-Checked –
Percentage of entries included in the report that do not have this value checked.
There is a desktop database converter tool available that allows you to convert a comma
separated file into a HanDbase .pdb file and visa versa. Unfortunately, this version is
only for PCs at this point. They are currently working on a command line Unix app. The
converter is quick and worked quite well.
HanDbase is the most powerful and feature rich of the shareware database applications.
It has the largest size .prc of the shareware programs, but I think all its features makes
it well worth it. The HanDbase website has a gallery of ready made applets (with and
without data) that help you get started using this great tool. A demo version is available
so that you might try HanDbase before you buy.
Most field types.
No Mac converters available yet.
Large .prc file.
DB v0.15 by Tom Dyas is a
small basic database program. It is only in alpha-quality at the moment and is more of a
skeleton than a real database program. It does come with the source code so other
programmers can add features. DB is released under the GNU Public License. DB allows you to
create as many databases as memory will allow with a maximum of 16 fields. The fields can
be made up of only string types so far.
So far DB will just let you create new databases, delete databases, and adjust column
widths. It lacks any searching, and sorting options. Although this program is low on
features, it will allow you set the backup flag so that the database will be backed up
during hotsync. DB will also remember what database you were in last and automatically
bring it up when you restart the program.
It will be interesting to watch the development of this program as others add their
ideas/features to it.
Source code is available.
Still alpha code.
No searching or sorting features.
Database Program Comparison
Conversion Program comparison-
Using the various converters for each database application, I converted a small 6 field,
106 record comma separated file (4k) into a JFile, MobileDB and HanDbase database (I
didn’t do this same test for List because it only allows for 3 fields. But, the converter
for List is a simple commandline DOS app.). The JFile converter program for Windows was
the easiest to use and created the smallest .pdb file (5k). The MobileDB converter program
for Windows was easy to use and created a 6k .pdb. The only bad point about the MobileDB
converter is that it is 2.5meg in size to download. The HanDbase converter was easy
to use and had the most options. It also created the largest .pdb file (13k).
Sorting Speed comparison-
HanDbase on 3 levels ~ 5 seconds
JFile on 3 levels ~ 3 seconds
MobileDB on 3 levels ~ 4 seconds
List on 1 level ~ 2 seconds
Database Application Development Tools:
Pilot 1000, Pilot 5000, PalmPilot Personal, PalmPilot
Professional, IBM WorkPad, or Palm III
75 K Satellite Forms Engine (this doesn’t include the actual size of any applications that
386 or higher IBM PC or compatible. Windows95/98 or Windows NT
4.0. 10mb hard disk space, 8mb RAM
Satellite Forms v2.0 by Puma
Technology is a visual rapid application development tool that lets you integrate your
applications with enterprise data from Oracle‚ DB2, Lotus Notes, Microsoft Access and
other database programs. It allows you visually create forms with buttons, check boxes,
data lists etc… and use a powerful visual basic like scripting to control the
Satellite Forms is fun to use and if you’ve ever used Microsoft Access or Visual Basic
to create an application, you’ll be pretty much at home in the Satellite Forms
environment. Applications can be created using the following field types:
Character – Letters, numbers and symbols
Numeric – Numbers
True/False – T or F
Date – Date information in the m/d/y format
Time – Time information in the HH:MM am/pm format
Ink – Drawing or signature
You can drag and drop different controls on to your forms. Some of the different
controls available are: buttons, check boxes, radio buttons, list boxes, and labels on to
your form and easily change their properties. You can also expand the capabilities of
Satellite Forms with extensions called SFX plugins and SFX controls. Using the API
(Application Programming Interface), these extensions can be written in C. Some plugins
and controls have already been created by 3rd parties. For example, a square root plugin
and a slider control are available on the Satellite Forms website.
Using a Visual Basic like scripting language, you can write very powerful applications.
I don’t think you’d want to use this software to create a game (although it could be
possible), but for database applications, it works very well. Documentation is included on
two 3-ring binders that explain the different script commands.
Applications created with Satellite Forms can be installed onto a PalmPilot and have
their own icon using the stub maker. They can also just show up in a list that the
Satellite Forms Engine will display. Regardless to which you do, you must install
the runtime module (Satellite Forms Engine) on the PalmPilot. This is a 73k file.
You only need to install this once and all your Satellite Forms applications can use it.
(Images from a
2 form application I created)
Applications are supposed to be able to sync database info back and forth from your PC
to the Handheld. I was never able to get this to work. It required a bit more than I was
able to figure out. I think it required some script programming (Active X) to trigger
different events at hotsync time. I will not say that Satellite Forms can’t do what
it says, I’m saying that I personally couldn’t get it to work. I was able to create a
database in Access, bring this table into my Satellite Forms database and sync it to my
Pilot. I then made some changes to the data on the Pilot and couldn’t get these changes to
show back up on the PC side.
I noticed that it seemed to take FOREVER to send a 250 record table included in my app
to my Palm III. It look about 30mins or so. Supposedly these problems will be
fixed with v3.0 of Satellite Forms due soon.
A nice thing about the Satellite Forms website is that there is an online discussion
message area where other Satellite Forms users can talk about problems and projects. There
is also an email based mailing list available.
I like Satellite Forms quite a bit but it is quite expensive for the programming
environment. Besides the start up price of $369.00, there are runtime charges for selling
your applications. You have to pay Puma the following license fees for every device that
your form will be distributed to.
5 devices = $89 per device
10 devices = $79 per device
25 devices = $75 per device
50 devices = $73 per device
100 devices = $69 per device
This can get VERY expensive VERY quickly and is ridiculous if you ask me. It is a
shame because otherwise I would say that Satellite Forms is worth a look if you don’t mind
the initial price.
Easy to use.
Price is very expensive.
Syncing tables to the Pilot is sllllllllow.
Requires a runtime module to be loaded on the PalmPilot in order to run apps.
Have to pay runtime costs if you distribute your applications.
Windows95/98 or Windows NT 4.0. 20MB hard disk space, 16BM RAM
Hotsync Manager 2.0 or higher
Pendragon Forms v2.0.1 by Pendragon
Software Corporation is a data collection forms creation program. With this program,
you can quickly create forms that make collecting and viewing data very easy. You can
create up to 64 forms with up to 250 fields. This fields can be made up of the
Text (up to 2KB per field)
Numeric (IEEE-754 double precision)
Currency (Range +/- 9,999,999.99)
Completion checkbox (used for automatic “Remove Completed Records”
Time Checkbox (returns NULL or the date and time when the box was checked)
Scale of 1 to 5 (can be relabeled, e.g., ABCDE)
Popup List (up to 512 characters per list)
Multi-Selection List (up to 32 options per list)
Lookup List (up to 1000 items or 32KB per list, with manual entry override)
Exclusive Lookup List (same as Lookup List, but limited to selections from the list)
Subform List (jumps to a subform)
Single Subform (limits to one subform per parent)
Jump Popup List (Jumps to another part of the form)
Section (target for Jump Popup Lists)
Date and Time (1 minute precision)
Signature (bitmapped signature capture)
Creating forms is quite easy. You can’t drag and drop controls on to a form like you
can in Satellite Forms though. With Pendragon Forms, each data field that you want to
create has a page of its own. To begin creating your app, you first name the form. Then
you start adding the fields for each data item that you will be collecting one at a time.
This is easy as you just pick the field type from a pulldown menu and then give it a name.
If after you are finished adding fields and don’t like the order you created them in, you
can easily adjust the order.
You can have special attributes set up for each field. Some of these attributes are:
Hidden – hides the field from the user
Read-Only – makes the field non-editable
Required – makes the field required
Key Field – specifies which field is the default display key
Auto-Default – field’s value defaults to the last entered value
Default Value – Specify a default value for a field
Lookup List Name – Attaches a lookup list to a text field to speed data
Script – attach a script to a field to set properties at runtime or to
calculate values or navigate to other fields
Maximum/Minimum Value – limits entry in numeric fields
There are also form attributes that can be set. These are:
Hide Delete Button – Prevents deletion of records via the deletion
Hide Record View Button – Prevents the user switching to Record View
Hide Back Button – Prevents the user from retracing previous screens,
limits to script based navigation
Hide End Button – prevents the user from exiting the form prematurely
Hide Form in List – hides the form in the list
Subform – prevents the user creating records in subforms
Field Level Validation – fields are checked as they are entered
AutoExecute – Automatically creates a new record when switching to the
Once you have created the form, you will want to install it on the Pilot. To do this,
you have to FREEZE the form. Once you freeze it, you can’t modify it by adding or
deleting new fields. I found this to be really annoying. The only way around this is
to make a copy of an existing form. Once you copy a form (even if it is frozen), it will
allow you to modify it. After you freeze the form, you can also set user access
rights. This will allow you to set whether the user can add, modify or delete records from
the handheld. The default value allows the handheld user to add, update and delete
records. There are also data persistence settings that you can set. These settings tell
whether records are kept on the handheld after hotsyncing. The default is to remove
records from the handheld after syncing. You can also set it to keep the records on the
handheld for X number of days. After the form is frozen, an Access database is
created on your PC. This table will contain the data that you collect on your handheld.
If you want to import data into the table to get things started, you can do so with
a .csv file, Excel file or even manually on the PC.
Entering data can be either in the field view (up to 11 fields at a time), or record
view (one field at a time), arrows at the bottom of the screen scroll through fields, page
up/down scrolls through screens.
Viewing the records in the list view will show you two fields. The first field is
static (key field) and you can choose the 2nd field via a pulldown list at the top of the
screen. I wish you could see more fields and adjust the column widths on the handheld.
If you tap on a record, you are shown the record view. Unfortunately, if you have
lines of text that are longer than the width of the screen, you won’t be able to see all
the data. To see all the data for a field, you have to tap on the field name. It
would be really nice if long fields wrapped or scrolled in the record view.
Filtering can be done on one field or across all fields in a form. The pulldown menu
below the record list allows you to choose which field to filter on. You can then put the
search criteria on the dotted line beside it and tap the magnifying glass. Once you do,
all the records that match that filter will be displayed in the record list. To turn off
the filter you can press the X button.
Sorting allows you to select a field to sort by. You can then choose to sort the
records in ascending or descending order. The default sort order is to display the records
in the order in which they were entered with new records first.
The great thing about Pendragon Forms is that the data you enter on the Pilot will
automatically be synced with your PC. You can also add data to the Access database on the
PC and it will be synced to the handheld. It is quick and effortless without special
programming like on Satellite Forms.
A very powerful feature that Pendragon Forms has is scripting. Scripting is an advanced
field property which allows you to control what happens when a user enters or exits a
field or makes a selection in a field. You can perform calculations in fields, or create
branching based on user’s responses in a field. There are 13 different statements that you
can use. Scripting isn’t as advanced as Satellite Forms, but it is easy to understand and
use. For example, say you had a form with 3 fields. Field 1 is Quantity, Field 2 is Unit
Price and Field 3 is Total. You could write a script so that when you enter the
values in fields 1 and 2, field 3 is filled in automatically. Such a script would look
answer = $1 * $2
Which means that the answer to be placed in field 3 is the multiplication of the
value in field 1 and the value in field 2. The $ symbol just means take the data in field
2. Note: you can only create calculations on two fields at a time.
Pendragon Forms has also supports the Symbol
Technologies SPT 1500 laser scanning solution (Palm III with built-in laser scanner),
and external barcoding equipment from DynaSys
Technologies (CoPilot) and American Microsystems
Pendragon forms is easy to use and is quite powerful. The price isn’t too bad at around
$100. But, again like Satellite Forms, there are runtime license fees that you have to pay
per device if you want to distribute your forms to other people. A 14day evaluation copy
is available from the Pendragon Forms website so that you can try this software before you
Price: $99.95 (single user license) $45 for each additional
Easy to use.
Very fast sorting and searching.
Syncs data quickly with PC.
Have to pay runtime fees for each handheld that your form is distributed to.
Application Development Tools Comparison Summary:
Satellite Forms and Pendragon Forms are commercial quality programs and so, they are quite
a bit more expensive than shareware programs. But, are the runtime license fees justified?
I don’t think so. If you have to pay $45 – $89 for every device that you have your
application on, you might as well learn C and buy CodeWarrior from
|Price||Size||Max # of Databases|
|Max # of Fields||Max Field Size|
|Database Type||Database Linking||Sorting Levels||Filter Levels||Column Sizing?||Different Field|
Navigation (record to record)?
|List||Free||21k||12||3||120, (4k memo)||Flat file||No||1||0||No||1||Yes||No||Yes|
|MobileDB Full||$14.95||37k||20||20||200||Flat file||No||3||3||Yes||1||No||No||No|
|HanDbase||$19.99||100k||30||30||255, (2k memo)||Flat file w/ability to link||Yes||3||2||Yes||16||Yes||Yes||No|
|DB||Free||22k||equal to available memory||16||4k||Flat||No||0||0||Yes||1||Yes|
|Satellite Forms||$369||73k runtime||equal to available memory||n/a||n/a||Relational||Yes||Yes||Yes||During form creation||6||Yes|
|64||250||2k||Flat file||No||1||1||During form creation||20||Yes|
|On PC only||No|