Database Question

G

Guest

In eVB I am able to use Pocket Access for my standalone application. Can
Pocket Access be used in .NET compact framework using VB.NET? What is the
best option to use for a database? I am not trying to create an enterprise
application, but rather one for a home user and wasnt sure if SQL Server CE
is the way to go.
 
T

Tim Wilson

There is no built-in support to access Pocket Access Db's in the CF. You'll
need something like this
(http://www.inthehand.com/index.php?page=5&show=1,2) to access your Pocket
Access Db's from a CF app. It is my understanding that you can use SQL
Server CE without cost as long as you do not connect to a SQL Server
database on a desktop/server. So you have both options. I guess it all
depends on which database type you're most comfortable with.
 
G

Ginny Caughey [MVP]

Steven,

In addition to Tim's reply, I'd recommend SqlCe since it will be supported
in the future and the next version is already in beta. As you may know,
neither eVB or ADOCE will be supported on future Windows Mobile devices.
VB.Net and SqlCE are the newer replacements.
 
C

Carlos Alejandro Pérez

Hi.

I'm afraid that Pocket Access belongs to the past, and SQL Server CE is the
way to go. Let's examine some aspects:

ADOCE is used with PA, and it´s limited to 4 joins between tables, you have
limited SQL syntax, and the indexed search is horrible. The only positive
thing you can consider is the seamsless merge-synchronization performed by
ActiveSync against the regular MDB Access database, almost all the operation
is automatic and needs very litte effort to get the thing running .
Conceived to be used with Embedded Visual Tools, ADOCE is not comparable to
the new ADOCE.NET.

However, with SQL Server CE, you can see a tenfold performance improvement
with reasonable sizes of databases, the available syntax with SQL ServerCE
is greater than the PA counterpart, and .NET CF deals successfully with this
little RDBMS. Please remember that at NETCF there are not typed datasets
available at design time. You must generate code with untyped datasets, and
they become typed only at run time, when the dataset is FILLed. Coding with
this limitations can be a real challenge for the novice programmer.

Remember that you must have a valid desktop SQL Server license in order to
use SQL Server CE. If you decide to use SQL Server CE with SQL Server, you
can use *essentially* two methods to get your data synchronized: one is
equivalent to a mere copy from the desktop database to the mobile one, and
the other is equivalent to the merge replication performed between two
instances of SQL Server (one is the mobile extreme, the other is the fixed,
desktop extreme). There are some other aspects like the kind connectivity,
if it is permanent, you can use RDA, etc.

Please remember that the actual technology to deal with this task avoids the
use of specific TCP-UDP ports. In order to pass thru the firewalls and
gateways, the port 80 is preferred, that is, you will need some internet
infraestructure: the data between the mobile device and the desktop instance
of the RDBMS is transmitted using XML (that is, plain text) and internet
HTTP standard port 80 is used by default. In other words: you must set your
server with an IIS service in order to get this feature working, adding
complexity to your solution.

IMHO, if your needs are mainly to record data on the device and NOT to
execute further and important processing with it, you can avoid the database
engine in certain cases, and write the captured data on the device's
filesystem, previously formatted in XML. You can end your day with a bunch
of XML files on your device, then you can transfer them programatically to
the desktop machine and load it in a "real" database. NET CF has several
facilities to deal with XML files and read-write operations from and to the
filesystems. With this approach, you can write a synchronizer module at the
desktop machine, and write your data to a Visual FoxPro database, an Access
..MDB or even a client server RDBMS other than Microsoft's (I certainly NOT
recommend this last option).

Even further, you can set a web service on the desktop machine in order to
synchronize your data, but you have to set up an HTTP server to do so. .NET
CF can consume regular web services, so you can (with some imagination) get
your data synch'ed by using this technique. You can use every tool to
generate your web service, the choices in MS are .NET, of course, and VFP.

Hope this can help..Please forgive me for my poor english, hope you can
understand my ideas :D

Carlos A. Pérez (Argentina)
MVP
 
P

Pat Reddy

Carlos,
Your English is superb! Mi español es horrible sin embargo.
Anyway, I was hoping you could answer this for me...

I have a client that is wants me to upgrade the OS on his symbol PDA to
Pocket PC 2003 and also allow him to transfer a small amount of data
from his PDA to a SQL database. He is not interested in SQL Server CE
or maintaining an IIS server. I proposed that what little data he has
be stored in simple XML files on the PDA then loaded into datasets to be
sent to the desktop SQL server. What do you think?
By the way, I would like to attempt to transfer the data when the PDA is
docked in the cradle. It is an Ethernet ready cradle that assigns an IP
address to the PDA when docked.

Gracias!

Pat Reddy
Industrial Controls Engineer
MAVERICK Technologies
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top