Databases

Susan Loh posted a FAQ on Windows CE databases to her blog.  I want to emphasize one of the things she said:

Q: When I use ADO .NET to build database applications for CE 4.x / PocketPC 2003, how do I create a CEDB database? It only seems to let me use SQL-CE.

A: You can't.  They (ADO) dropped support for CEDB.  :-(  This means, your only choice for developing ADO applications that use CEDB is to develop using the CE 3.0 / PocketPC / PocketPC 2002 tools (eg. eVC 3.0) with ADOCE.  Your application should work on newer OS versions but you have to use the old tools.  Probably you are just best off switching to SQL-CE.

Switching to SQL CE is indeed good advice.  In fact, we're doing it. 

The next version of Windows Mobile is going to ship with SQL CE 3.0 in ROM on every device.  No longer will there be any question over how strongly we feel about this technology.  No longer will there be any confusion over whether you have to pay anything to use it.  No longer will there be this extra CAB you have to install, taking up precious user storage space.

And with SQL CE being used by Pocket Outlook, you can count on it being well scalable, robust, and powerful. 

Apps using CEDB should continue to work* but considering that SQL CE will be in ROM and have great tools support in Whidbey, now is definitely a good time to start planning a migration.

* Exception: If your code gets at the PIM databases by using CEDB (an undocumented and unsupported approach) rather than the POOM APIs, there will obviously be some problems.  Fortunately, improved POOM APIs will remove your need to go straight to CEDB. 

[Author: Robert Levy]