Sybase SQL Anywhere Studio has a new technology called UltraLite which
has been available for almost a year. We have many applications
deployed using this. See http://www.scorecardpro.com. It allows you
to develop finger-print (not foot-print) sized databases for
mobile/embedded devices. On the RIM pager, our application was as
small as 35K, on the Palm OS it starts at 50K in size.
You can use any of the datatypes that ASA (Adaptive Server Anywhere)
supports:
char, varchar, long varchar
binary, varbinary, long binary,
bit, tinyint, smallint, integer, bigint (64)
date, time, datetime, timestamp
numeric, decimal
float, real
Probably the most impressive feature is the ability to exchange data
with any of the main DBMS vendors:
Sybase (ASE, ASA)
Oracle
DB2
Microsoft SQL Server
This means your applications will work against whatever backend your
clients are using, they are not locked into using Sybase. Data can be
synchronized with the above databases via HotSync, Serial or TCPIP.
Once you have written the database portion once, and then simply write
different front ends for the different devices (CE, Palm, ...).
The code you write does not directly reference any Palm DBs, it just
uses embedded SQL to
access your tables. You would write the SQL just like you would with
any relational database regardless witch platform you actually deploy
your application to (ie Win32, DOS, CE, Palm, RIM, Simbian EPOCH...)
Here is a couple of examples:
EXEC SQL
INSERT INTO ULIdentifyServer( "server_id" )
VALUES ( :sql_server_id );
EXEC SQL UPDATE ORDERS
SET "server_id" = :sql_server_id
WHERE "table_id" = :sql_table_id
AND "order_status" <> :sql_order_status;
JOINS:
EXEC SQL BEGIN DECLARE SECTION;
long sql_table_id;
long sql_pk;
EXEC SQL END DECLARE SECTION;
EXEC SQL
SELECT kp.table_id, min( "key_id" )
INTO :sql_table_id, :sql_pk
FROM KEY_POOL kp, KEY_POOL_TABLE kpt
WHERE kp.table_id = kpt.table_id
AND kpt.table_name = :sql_table_name
GROUP BY kp.table_id;
You have full access to the functions the database supports, like the
above min() function.
The file needs to be pre-processed and then compiled in with your
application. We have a CodeWarrior 5 plugin that automates this for
you. It will also add any files to the project that is required.
When you build your application, it will automatically pre-process the
SQL file without leaving the IDE.
Since many of our applications need performance, the projects I have
worked on, queries on tables that contain over 50,000 rows had
sub-second response times!
Evaluation copies are available:
http://www.sybase.com/products/anywhere/index.html
I am happy to answer any questions people might have.
We host a newsgroup for UltraLite specific questions:
sybase.public.sqlanywhere.ultralite
David Fishburn
Mobile and Embedded Computing (MEC) Division
Sybase
> -----Original Message-----
> From: Rohnny Moland [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, August 11, 1999 12:52 AM
> To: [EMAIL PROTECTED]
> Subject: Relational database structure using Palm databases
>
>
>
>
> Hi,
>
> I'm wondering how to build a relational database using standard Palm
> databases. How can I join tables and work with more than one
> table? Can a
> database have more than one table or do
> I have to create a new database? Can I work with more than
> one database at
> a
> time?
> Does someone know where I can find more information about relational
> databases on Palm?
>
> Thanks,
>
> Rohnny Moland
> CatalystOne as
> email: [EMAIL PROTECTED]
>
>