Unlike the server version of SQL Server 2005, SQL Server 2005 Mobile Edition (SQL Mobile) does not require a dedicated executing process. Instead, SQL Mobile is basically just a DLL that loads into the calling process - each database exists as a separate file that is easily copied between devices. Even without a dedicated process, SQL Mobile supports multi-process, multi-threaded database access and provides atomic transactions and rich SQL language support. Oh yea - if that wasn't enough, its FREE.
In addition to all these features, SQL Mobile (unlike its predecessor SQL Server CE), runs on non-Windows Mobile devices (desktop computers, etc.). Well it sort of runs on non-Windows Mobile devices - that's where things get a little complicated.
If you've created a Pocket PC or Smartphone application in Visual Studio 2005 that uses a SQL Mobile database, you've probably experienced SQL Mobile's desktop support. From within Visual Studio 2005 you can create, view and manipulate a SQL Mobile database located on the desktop computer and the project will automatically copy the database to the device when the application is deployed. So what's the complication?
Well, if you try to use SQL Mobile on a non-developer desktop computer, in most cases it will not work. It turns out that Microsoft, at least for now, has chosen to limit the scenarios where SQL Mobile will execute on a non-Windows Mobile device.
For SQL Mobile to execute on a non-Windows Mobile computer, one of the following must be true.
- The computer is a Tablet PC
- Visual Studio 2005 is installed
- SQL Server 2005 (or SQL Server 2000 SP3a or later) is installed
The key is that SQL Mobile is only to be used for "mobile" scenarios and the database must ultimately be deployed to a mobile device or Tablet. In the case of the Tablet PC, it's considered a mobile scenario so it's explicitly supported. Visual Studio 2005 support is pretty obvious, it’s the tool used to create applications so SQL Mobile is supported for mobile application development. The SQL Server 2005 case, addresses a key production requirement.
In many scenarios, organizations have a number of mobile device users where each user requires that a specific bit of data be loaded on their device (the classic delivery driver scenario) and that data is produced by some production process running on server. Prior to SQL Mobile, attempting to produce a series of database for use on mobile devices was very difficult as the database files could only be produced on an actual mobile device or a device emulator. Now with SQL Mobile, a program running on a desktop/server computer (as long as SQL Server 2005 is installed) can directly produce the SQL Mobile databases files. These files can then be downloaded to the individual devices as a complete database.
So by Microsoft allowing SQL Mobile to be supported on computers that have SQL Server 2005 installed, Yes! - you can populate SQL Mobile databases on a server. In fact, SQL Mobile is even a supported destination in SQL Server Integration Services (the new DTS).
To answer the original question posed in the title: SQL Mobile can run on non-Windows Mobile computers as long as the computer is being used as part of an approved mobile scenario1. By supporting these three non-Windows Mobile device scenarios, Microsoft has addressed the most common challenges to working with mobile databases.
(now… how do we convince them to provide unrestricted desktop/notebook computer support? J)
1For information on setting up SQL Mobile in the various environments (development, server, etc.) checkout Installing SQL Server Mobile.
Posted
Mar 01 2006, 09:34 AM
by
jim-wilson