Re: Sql ce server process



Brandon,

It's not necessarily a bad idea, but I'm not sure if it's a great one either, and it might be more complicated to implement than you expect. The main problem I see with that approach is that it requires you to have a reliable connection all the time or you're completely out of business. I don't know what type of hardware you're targeting, but SQL Compact is in ROM beginning with Windows Mobile 6, so the other 'problem' might be that newer devices solve this problem for you, or at least this solution might not actually solve your problem And a third issue might be serializing access to data if more than one device might be using this service. Making that robust could be more trouble than it's worth, and making it performant under load might be impractical.

As for why somebody hasn't done this already - Microsoft has been focusing more on the occasionally connected scenario with Sync Services for ADO.Net. The smart device piece of that isn't available yet, but Sync Framework is certainly the direction they're moving in. Steve Lasker even has a blog post describing a "stored procedure" kind of approach to SQL Compact: http://blogs.msdn.com/stevelasker/archive/2008/02/11/stored-procedures-and-sql-server-compact-the-great-debate.aspx Definitely worth a read since it addresses working with queries in a uniform way, although I don't think it addresses the specific issue you're trying to solve.

--
Ginny Caughey
Device Application Development MVP

www.wasteworks.com
Scalehouse and Billing Software for Waste Management



"Brandon" <Brandon@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message news:09E3294C-67CD-4454-8F15-3C69A9459806@xxxxxxxxxxxxxxxx
I posted this on the compact framework board, as the reasoning behind the
direction described here is compact framework - related, but I though there
might be an expert over here on this board that might be more familiar with
possible past attempts in this direction....

We are running out of VM in our main application, and among other things, I
am considering how we might break functionalities across groups of native
dll's that have to load for those functionalities. An obvious break line
involves sqlmobile (3.x). I threw together a quick proof of concept for
basically creating a database engine process that would perform all sqlmobile
access, with a TCP interface for issuing commands and getting results wrapped
in XML (we already do something similar in a process that performs all of our
replication - conceivably, this process would grow up to be a sqlmobile
engine that handles both queries and replication). I know that there may be
something we can do that will be more efficient than XML, but our result sets
are generally small - probably the biggest one is 18 rows by about 30
columns. Hopefully an added benefit would be that we might even be able to
put together an algorithm for caching a few query plans...we have been unable
to do this for some time, due to VM constraints.

I can't imagine that this is as avenue that has not been explored, and am
just wondering if anyone has any comments on the approach - is this a bad
idea? It seems like if this were a viable option, that it would already
exist out there somewhere, probably even provided by Microsoft. Maybe they
were just afraid people would try to use it in a more robust way than it was
intended...?


.


Loading