Information about SQL Server Compact Edition (SQLce)
On April 6, 2006 Paul Flessner announced SQL Server Everywhere Edition, know known as SQL Server Compact Edition. https://www.microsoft.com/sql/letter.mspx SQL Server Compact Edition a new SKU in the Microsoft product platform. Paul announced that we would have a CTP in the summer of ’06 with final release in the 2nd half of ’06.
So, what is SQL Server Compact Edition? Here’s some Q&A that will hopefully help. Some of this is still not finalized. So take this information as our current thinking, not a final decision. The purpose of this post is to give you our current thinking and solicit feedback.
Q: Is SQL Server Compact Edition a new V1 product?
A: No. SQL Server Compact Edition is a new product name to acknowledge the new breadth of reach. SQL Server Compact Edition is the SQL Server Mobile edition product with its limitation to the mobile platform removed.
Q: What’s SSEv and SSE?
A: Just my shortcut for SQL Server Compact Edition. SSE is how I refer to SQL Server Express. These are NOT official abbreviations, just my shorthand.
Q: Should I be concerned about yet another V1 product?
A: No. As noted above, SSEv is SQL Mobile with the license restriction removed for the Windows desktop platform.
Q: SQL Mobile and SQL CE were released on the Mobile platform, should I be concerned about SSEv and its stability on the desktop platform?
A: SSEv has been used on the desktop platform within several Microsoft products for years. MSN Client, Media Center PC and several other products have already been using SSEv. In order to test SQL Mobile and its predecessor, SQLCE, Microsoft has always tested the codebase using the Windows Platform. While we do testing specifically on the mobile platform, most of our testing is actually done using the Win32 platform.
Q: Is this a modified version of SQL Express?
A; No, SSEv is based on the SQL Mobile codebase.
Q: Will SQL Express be continued?
A: Yes, SQL Express is our free version of our server product, SQL Server.
Q: Which database should I use for my desktop apps?
A: This is a longer discussion than what I’m trying to cover in this Q&A, but both SSE and SSEv will be available for the general desktop scenario. However, SSEv is targeted specifically for general desktop usage. It runs in-proc, doesn’t offer data as a service, has a lightweight model for applications that need to share the resources of the users machine with other applications besides the database engine. SSE is a free version of the server product. It runs as a service, and while SSE has been tuned to be more efficient about resource usage, it is a server based product. General guidance is to start with SSEv. SSE is well suited when you want exact functionality of the server platform, but are willing to deploy a server based product that will require significantly more resources than SSEv. When considering local data stores, consider the bigger picture of the problem. A users machine is a different operating environment than a server.
Q: Will SSEv have the same licensing constraints as SQL Mobile?
A: No. SSEv will be enabled on all Win32 desktop platforms.
Q: Can I use SSEv as my web server database?
A: No. SSEv is targeted at the desktop database. Our plan is for SSEv to throw a not-supported exception when the hosting process is IIS.
Q: Why won’t SSEv be enabled for web applications.
A: SSev is targeted at client database scenarios. The SQL Server SKUs, such as SQL Express are targeted as “data as service”. By maintaining these two product lines as separate targeted scenarios we can enable features that would only apply to each scenario. One size fits all means one size fits no-one.
SSEv will use the same set of classes that SQLCE and SQL Mobile have used. System.Data.SqlServerCe.* Because of this, if a website developer started with SSEv then wanted to switch to one of the Server based SQL SKU’s, such as SSE, they would have to change their ADO.net data access code.
If a developer was building a client application and started with SSEv and wanted to scale their application to multi-user, they wouldn’t necessarily get rid of their local database. The design we’re shooting for is for developers to keep their local database using SSEv and synchronize the data in their SSEv database with a server database using one of the various sync technologies. Developers can use Merge Replication or Remote Data Access (RDA), a lightweight sync technology available to the SQL Mobile platform that will equally apply to the SSEv product. In addition to these sync technologies, we are working on a new set of sync components based on the ADO.net programming model that we hope to ship in the Orcas product.
Q: Will Microsoft have a unified ADO.net provider?
A: We are considering various ways to abstract our different database products while minimizing the code a developer would have to change. Rather than wait for a unified provider, we decided the client and data service scenarios are independently big enough to make the products we already have available for developers to start programming today.
Q: What is the feature set of SSEv?
A: For the ’06 release, it will be the same feature set as SQL Mobile. https://www.microsoft.com/sql/editions/sqlmobile/sqlmobile.mspx
Q: When will SSEv be available?
A: If you have Visual Studio 2005 you already have a version you can start developing against. https://blogs.msdn.com/smartclientdata/archive/2005/07/15/439008.aspx
We plan to release a CTP of the SQL Server Compact Edition product at Tech Ed ’06 and RTM later this year.
Q: If the feature set of SSEv is the same as SQL Mobile, why do I need to wait ‘till June for a CTP and the end of the year for a final release?
A: While SQL Mobile has already been available for the Win 32/Tablet PC platform, and we already have a lot of experience with it in released Microsoft products, we have some installation decisions we want to finalize. Our plans are to have a CTP of SSEv that have an installation model other than just copying the dlls to your application directory.
Q: SQL Mobile can be ClickOnce deployed without administrative rights. Will SSEv have this same ability?
A: This is the main reason we’re not releasing immediately. Because SQL Mobile can be deployed as private dlls, Microsoft doesn’t currently have a direct way to service these dlls in the case of a critical servicing issue. We have several technical solutions that we are actively working on and we hope to be able to maintain this non-admin deployment model with SSEv.
Q: Is SSEv suspect to the same threat that MSDE incurred with Slammer?
A: Well, never say never, but the main difference between MSDE and SSEv is MSDE and SQL Express run as a service. While SQL Express has its port listening features disabled by default, it does run as a service and these features can be turned on. Because SSEv doesn’t run as a service, doesn’t ever listen to network traffic, and doesn’t run without the hosting of an application, it doesn’t have the same “surface area” as its server based siblings. Another key feature of SSEv is it doesn’t allow any code to be placed in the database. It’s a pure data format. Because of these differentiations, users should be much more comfortable with SSEv. Although I’m unaware of any servicing issues in the SQL CE, SQL Mobile history, we do not want to assume we’d never have an issue. Because of this, we are exploring several servicing options that will hopefully maintain the ClickOnce deployment model without requiring admin rights for installation of SSEv
Q: Can I use SSEv data files as my application document format?
A: Yes, SSEv data files are pure data. Unlike the server SKU’s, SSEv doesn’t have any code. No sprocs, views, triggers, extended sprocs, macros or ability to run XP_CmdShell. Because of this, we do consider SSEv files a doc safe format.
Q: Can I change the extension of SSEv files and associate that extension with my application?
A: Yes. Because SSEv has a doc safe format, SSEv files can be emailed and their extensions can be changed to launch your application. Visual Studio 2005 will only support .sdf file extensions, however, this is a limitation of the designers. The SqlCeConnection object can handle any extension you wish.
Q: Does SQL Express support the changing of its extension?
A: No. SQL Express data file format, .mdf, contains code. Because of this, Microsoft limits file based ADO.net connections to the MDF extension. Users should consider .mdf files like exes. They are just as capable of running code as an exe.
Q: How big is the SSEv runtime?
A: For all 7 dlls, the entire runtime is 1.4mb. This is less than a SQL Express .mdf file.
Q: What is the data file size limitation of SSEv?
A: Both SSEv and SSE share the same 4gig size limitation.
Q: Does SSEv support multiple connections?
A: Yes. One of the changes in SQL Mobile 2005 was the addition of multiple connection support. You can now have several connections in your UI layer and another connection for background sync? I believe the connection limit is 256 connections. If you hit this limit, it would be interesting to know why?
Q: Will SSEv support files placed on network shares?
A: Yes, but this is not meant as a multi-user scenario. Because we know that users place their documents and settings directory on other servers we’ve enabled this scenario. However, since SSEv is not a client/server database infrastructure the SSEv engine that opens the file will only share that file with other applications on the same machine. If another user attempts to open the same data file from another machine the user will receive a connection open error. We are working hard to make sure we don’t paint ourselves, or allow developers to paint themselves into a corner and travel down a dead end path. SSEv is a user centric data store. SQL Server is our data service platform.
Q: Does SSEv have a different set of data types than SQL Server?
A: No. SSEv has a strict subset of the SQL Server Datatypes. Developers that build their apps initially with SSEv will not have any issues converting their data up to SQL Server SKUs. This was not the case with Jet to SQL Server conversions.
Q: Does SSEv have the XML data type?
A: No. SSEv will place XML in an nText datatype when data is synchronized between SQL Server and SSEv. So, you still have the XML storage, but SSEv will not have X Path query support in its engine. This is something we’re considering for a future release. However, the specific implementation has yet to be decided. Our main goal is to keep SSEv as small and lightweight as possible. The LINQ project opens up many interesting possibilities. In future version we may leverage LINQ to get XML query capabilities without having to build an XML query engine directly into the SSEv engine.
Q: Does SSEv support CLR UDT data types?
A: No. Because SSEv runs in proc with your application, the idea of hosting the CLR within the database would be a little redundant. The database is actually hosted within the CLR. You can place UDT data types in binary data columns, but just as with the XML data type, you will not be able to query into properties of these CLR UDTs. Also like the XML data type, we may be able to leverage features of LINQ to enable this scenario without having to increase the size of the SSEv engine.
Q: Does SSEv have any unique features from its SQL Server products?
A: Yes. Because SSEv is focused on local, in-proc data scenarios we can expose features that would otherwise be difficult to expose without scaling limitations. SSEv will support the SqlCeResultSet api that was shipped in SQL Mobile 2005. This feature enables developers to create a databindable, updatable, scrollable cursor. As a user makes a change to a row, the values are immediately pushed back to the database. There’s no need for DataAdapters or DataSets. SqlCeCommand includes some Seek like features that allow developers to leverage specific indexes as well.
Q: Does SSEv have Typed DataSet support and Drag & Drop support with the Data Sources Window?
A: Yes. In Visual Studio 2005, developers can now create Typed DataSets for both their desktop and device projects. For a walkthrough see: https://blogs.msdn.com/smartclientdata/archive/2005/07/15/439008.aspx
Q: Can the same SSEv data file be shared between device and desktops?
A: Yes. Since SSEv is based on the SQL Mobile codebase, developers can simply copy their .sdf file from the device to the desktop and back without any conversions.
Q: Does SSEv have a security model? How does this compare to SQL Express?
A: Yes. SSEv has a single user security model. Because SSEv is targeted at per/user data scenarios, the assumption is the data is already partitioned to the user. The application would provide the Username and Password in the connection string. Because SSEv is targeted at desktop scenarios, there is no way to bypass the username and password authentication model. While most would consider the SQL Server product line more secure, they would be correct for server scenarios. However, the security model for the SQL Server product line is at the entry to the server, not the .mdf file. Once an end user has access to the .mdf file, the user could use the SQL Express User Instance feature to connect to the mdf file as the DBO. This bypasses any SA password that may have been applied to the database. Therefore, under typical scenarios, SSEv will have a better security model that will limit users from viewing the data without your application, or the username and password.
Q: Does SSEv have any encryptions features?
A: Yes. When creating a SSEv data file you have the option to encrypt the database. While not nearly as granular as the SQL Server encryption features, this level of encryption provides security against users trying to prod into your data files without permissions.
Q: Can two users on the same machine share the same SSEv data file?
A: Yes. While SSEv isn’t a data service platform, two users on the same machine would leverage the multi-user features.
Q: Does SSEv support multiple connections on different processes?
A: Yes.
Q: Does SSEv support stored procedures, or views?
A: No. Because SSEv is targeted at lightweight, in-proc scenarios these features aren’t available. However, these features are typically used to provide multi-user abstraction from the underlying database schema. Because SSEv runs in-proc with your application these features would typically provide more overhead than value. Because SSEv runs in-proc with your application, why limit yourself to T-SQL within a stored procedure? By creating a data access layer to your SSEv database you can use the full power of the .NET Framework.
Q: Does SSEv support Triggers?
A: No. Triggers do offer some interesting scenarios for eventing models. We are looking at different models for implementing triggers that could benefit from an in-proc model.
Q: Is SSEv available for native development with C++?
A: Yes.
Q: Is this a definitive list of features and decisions for the SQL Server Compact Edition product?
A: No. This is our current thinking and baseline of the SQL Mobile product we are leveraging for SQL Server Compact Edition.
Q: Does SSEv support Reporting Services?
A: Yes. Reporting Services can build client reports based on DataSets or Objects. Since SSEv has dataset and Typed DataSet support, developers can just as easily build a client side report for SSEv as they can any other data source.
Please send feedback on any and all comments. Is there something I didn’t cover? Let me know and I’ll add it to the list.
Steve
Comments
Anonymous
April 09, 2006
PingBack from http://www.syringe.net.nz/PermaLink,guid,e3bae366-e108-4020-a746-2cb943c25d64.aspxAnonymous
April 09, 2006
Стив опубликовал неплохой FAQ. Откуда произошёл SQL/e, отличия от большого SQL,Anonymous
April 09, 2006
Since the release of SQL Server 2005 late last year the mobile devices community have been discussing...Anonymous
April 09, 2006
Steve Lasker posted a FAQ sheet on SQL Everywhere  or SQL/e as he calls it. See http://blogs.msdn.com/stevelasker/archive/2006/04/10/SqlEverywhereInfo.aspx...Anonymous
April 09, 2006
http://msmvps.com/blogs/theproblemsolver/archive/2006/04/10/90219.aspxAnonymous
April 09, 2006
Steve Lasker har en del FAQ savr på hvad SQL Server Everywhere er: http://blogs.msdn.com/stevelasker/archive/2006/04/10/SqlEverywhereInfo.asp...Anonymous
April 09, 2006
Mabster put me onto a post Steve Lasker has made a post about SQL Everywhere and I gotta say, to...Anonymous
April 10, 2006
You have referred to the new SKU several times as "SQL Everywhere". In a number of places on the Sybase, Inc. web site, it is stated that "SQL Everywhere" is a trademark of Sybase, Inc. or its subsidiaries. For example, see http://infocenter.sybase.com/help/topic/com.sybase.help.pb_10.5.apptech/html/apptech/legal.htm
Has Sybase, Inc. released their trademark on "SQL Everywhere" to Microsoft?
Steve Kass
Microsoft SQL Server MVPAnonymous
April 10, 2006
Steve Lasker ha escrito un excelente FAQ (inglés) acerca de de SQL Server Anywhere aquí.
&nbsp...Anonymous
April 10, 2006
Steve Lasker ha escrito un excelente FAQ (inglés) acerca de de SQL Server Anywhere aquí.
 ...Anonymous
April 10, 2006
I'm happy! Perfect solution for storing user documents.Anonymous
April 10, 2006
On April 6th, 2006, Microsoft (via a SQL Server 2005 Update from Paul Flesner) announced a "new" product in...Anonymous
April 10, 2006
Is it something like Firebird Embedded?Anonymous
April 11, 2006
I'm not familiar with the details of Firebird Embedded, so I can't make a comparison. To capture the essence: SQL/e is a lightweight, in-proc relational database that offers a subset of the data types and TSQL syntax to provide queries over relational stored data with transactional support. The SQL/e data format can be password protected with encryption. SQL/e is based on the proven history of the Microsoft SQL Server Mobile Edition technology.
For details on the feature list check out: http://www.microsoft.com/sql/editions/sqlmobile/default.mspx
Reporting Services Support
I added a Q&A about Reporting to the above content. Quick answer is YES.
There were some questions about how much SQL/e makes a difference with the LINQ project. SQL/e doesn't compete w/LINQ. SQL/e offers a better together story with LINQ. LINQ doesn’t have a query processor. It takes VB and C# syntax and composes a query to pass to the underlying store. The underlying store processes this query and returns a result to LINQ, or in this case DLINQ. In comparison, when using LINQ over XML, there’s no query processor involved. Large XML files wouldn’t compare in performance compared to leveraging a relational storage engine with a query processor. Remember, XML files would have to be fully loaded into memory to process a request. Relational databases have optimized indexes to only load the necessary information from disk into memory. So, for the scenarios where developers are using XML, or specifically DataSets persisted to disk as their local storage, SQL/e would provide data integrity with the transaction support, security, and a significant performance boost.
SteveAnonymous
April 11, 2006
The comment has been removedAnonymous
April 11, 2006
Interesting product
comparison between SQL Server Everywhere and SQL Server Express. Essentially...Anonymous
April 11, 2006
Hacked together a prototype for my Orcas feature over a weekend. Not bad for a PM,eh? :-). Sorry, I...Anonymous
April 11, 2006
Steve Lasker posted a quick Q&A on a semi-new version of SQL Server called SQL Everywhere....Anonymous
April 11, 2006
Steve,
Forgive the newbie questions :)
Is SQL/e accessible/usable only through code, or will it have support for a GUI (SSMS-E or a similar one)?
Also, what are your views on using SQL/e rather than XML as a data store, for things like configuration, (BizTalk style) messages, etc.?
PhylypAnonymous
April 12, 2006
SQL Server Everywhere 追加情報(SQL MobileのWindows desktop 展開)Anonymous
April 12, 2006
The comment has been removedAnonymous
April 12, 2006
Why not just remove the usage restrictions of SQL Mobile in the interim? If it's good enough for Tablet PCs...
I understand you wanting to controll service pack and critical updates, but having a per app instance would also potentially eliminate a bug introduced with an update.Anonymous
April 13, 2006
Steve Lasker ha escrito un excelente FAQ (inglés) acerca de de SQL Server Anywhere aquí.Anonymous
April 15, 2006
How can we start developing with it now?
- Can we use Mobile for development while waiting for the CTP?
- Will our smart client prototypes work on XP if Mobile is used?
- How much will break between Mobile and SQL/e? If we put thousands of man hours with mobile (while waiting for SQL/e), we need to protect our investment.
- How reliable is the release date? We also have an "end of the year" committement date. There is some flexibility, but we need to control the risk level.Anonymous
April 16, 2006
Aaron,
This is exactly the type of conversations we're having. SQL/e doesn’t have the surface area that a server based product does, so we are less concerned about it. However, with the GDI+ bug, we’ve learned to never say never.
Since the api will remain the same, developers can get started today and we plan to hope have have a CTP of the install model by June 06.
Phylyp
SQL/e is accessable through the standard VS and SQL Server Management Studio editors. You can create databases, create tables, and in VS even edit data within those tables. In comparison to XML for configuration, SQL/e would be a great replacement. As configuration files get large, XML tends to become a problem. In order to read XML you have to load the entire document in memory to navigate to a particular node. Likewise, to save a single element, you have to read and save the entire document. With SQL/e you can read/write one row at a time so it will scale much better. While LINQ will make queering XML, Objects and Relational data easier, it leverages the underlying technology for query processing. So, LINQ doesn’t solve this problem for XML.
Also remember that SQL/e has security and encryption built in, so rather then having to take on the ownership of these problems when dealing with XML, you can delegate this to SQL/e.
One of the things we’re considering is providing a Windows Forms Settings Provider that would use SQL/e. We’re also looking to use SQL/e as the general cache for services on the client.
Anonymous
April 16, 2006
The comment has been removedAnonymous
April 17, 2006
From Steve Lasker's blog:http://blogs.msdn.com/stevelasker/archive/2006/04/10/SqlEverywhereInfo.aspx...Anonymous
April 17, 2006
This is fantastic news to developers that use XML to transfer data back and forth to mobile devices like myself. If its only going to be available as an MSI package please don't limit the desktop install to XP SP2 as I find most large organisations (government mostly) still only have XP SP1 and in some cases 2000 SP4 and being a small development firm if we tell them they need to upgrade their OS to use our software their IT department’s would tell us to take a flying leap.Anonymous
April 18, 2006
The comment has been removedAnonymous
April 18, 2006
Hi Eric,
Thanks for the feedback on the deployment. We’re actively working on how we’re going to approach this balance. As we close on a decision, I’ll post it to this blog. I’ve opened another blog post related to the question: http://blogs.msdn.com/stevelasker/archive/2006/04/16/AdminInstalls.aspx
Yes, you can use SQL Mobile today. We are committed to releasing on the XP desktop. This is what Paul Flessner announced on April 6th: http://www.microsoft.com/sql/letter.mspx so your not out of your mind.Anonymous
April 18, 2006
The comment has been removedAnonymous
April 19, 2006
For those (like me) who have missed this announcement, SQL Mobile is now called SQL Everywhere, and guess...Anonymous
April 20, 2006
I would be benefitial if you provide SQL/E source code under a shared code license so as it could be ported onto other platforms as well. 1.4mb is not critical code that Microsoft can't help sharing or at least help porting onto other platforms.Anonymous
April 30, 2006
Hi and welcome to the SQL Mobile blog!
 
The SQL Mobile team wants to make this blog a place...Anonymous
May 03, 2006
I'm inspired by experiencing the Outlook 2003 model of seemless offline data access, and I'd love to implement this feature into my own applications.
My desktop application currently uses Jet 4.0 as the database backend. This has been ideal since my application typically only has one user connected to the database at a time. Jet's simple, inproc, single-file database engine has been great for my users.
But now I want to develop an ASP.NET version of my application as well as a CF.NET version. And I want these all to synchronize. For my ASP.NET app I’d be fine with using SQL Server 2005. For my CF.NET app I'd be fine with using SQL Mobile (Everywhere). But the engine to use for my desktop app has always been up for debate. SQL Server 2005 has dropped replication support for Jet/Access subscribers. SQL Express is just too much for my app or my users to download and maintain, and it's more of a 2-file system. Thus, I'm thrilled to hear about SQL Server Everywhere. I like that it is a strict subset of the full SQL Server, as I have a better chance of actually sharing some SQL code here and there.
However, from my perspective, there are some features I'd be losing with a transition from Jet/Access to SQL Server Everywhere:
1. Multi-user access to a database file on a shared network folder. I understand that this not a "best practice" for multi-user situations, but for non-technical users this provides a VERY simple solution for very small teams (ie. husband/wife on a home network). Perhaps the artificial limit could be raised to allow connections from no more than two computers at a time.
2. The query designer. I often use the visual query designer to more quickly write my SQL. From what I can tell this is not available in SSMS for SQL Mobile databases. It seems like this could easily be added to SSMS without touching the SQL Mobile engine. It would also be nice if it would provide the SQL script for creating tables, etc.
3. Ability to link to tables from Access. My application has many integration points with Office, and one such feature of my application generates a new Access database for my user with linked tables referring to my application's database tables. This gives my power-users a way to write their own queries and reports. From what I can tell, Access 2003 can not link to tables in a SQL Mobile database. Perhaps if an ODBC driver could be provided, this would be possible as Access could use ODBC for this.
These are not necessarily show stoppers, but they would be a step backward. I’m still strongly considering moving to SQL Everywhere. But if these three shortfalls could be addressed the choice would become more obvious to me.
Thanks,
TroyAnonymous
May 08, 2006
TrackBack From:http://yysun.cnblogs.com/archive/0001/01/01/394478.htmlAnonymous
May 15, 2006
Re: Can I use SQL/e as my web server database?
A: No. SQL/e is targeted at the desktop database. Our plan is for SQL/e to throw a not-supported exception when the hosting process is IIS.
- we currently have a scenario where we prebuild device databases via a web service and would be very sad if we are no longer allowed to do so - any thoughts ?Anonymous
May 17, 2006
The comment has been removedAnonymous
May 20, 2006
Voici une très bonne nouvelle pour les développeurs de solutions mobiles : la base de données Sql Mobile...Anonymous
May 22, 2006
The comment has been removedAnonymous
May 22, 2006
Access – We’re trying to figure out who’s going to support which side. Honestly, it’s a little low on our priority list for now, but something that will definitely move up the stack. The fact that Office and users would want to use SQL Ev for their scenarios means we’re right on target. I’m confident it will happen, just a matter of how fast.
IIS/ASP.net Unblocking – we do have an “unblock” mechanism. We just haven’t decided how to message it. We basically don’t test or immediately intend to support multi-user web scenarios, but developers have single user asp.net scenarios. Since there’s no way to differentiate these, we decided to “soft block”. Make your case, a gift would be nice, and we we’ll eventually make the key a little less secret. <g>
SteveAnonymous
May 24, 2006
IIS/ASP.net Unblocking - our case is that we currently have in production a mechanism to build SQL Mobile files server side for performance reasons. Hope that is specific enough...Anonymous
May 24, 2006
Hi,
I would like to know if we, Compact Framework programmers would be able to synchronize with SQL Server Anywhere using RDA or Merge Replication freely.
What's the expected launch date for SQL Server Anywhere?
Thanks in advance.Anonymous
May 27, 2006
The comment has been removedAnonymous
May 27, 2006
Erik, pleaes contact me directly: http://blogs.msdn.com/stevelasker/contact.aspxAnonymous
May 27, 2006
Regarding redistribution rights, will licensing for small-footprint ISV retail applications built on SQL/e be royalty-free?Anonymous
May 28, 2006
Hi Jeff,
SQL/e is free for one, two or two thousand copies. Of course, if you want to pay us, I'm sure we can arrange something <g>.
To be complete, SQL/e doesn't have any licensing fees. However, SQL Server does. So, if you're using SQL/e to sync with SQL Server, that's when you'll need a client access license CAL for each client synching. SQL Server just considers this another connection, so it doesn't matter if it's SQL/e, a web client or a smart client, they're all just clients.
SteveAnonymous
May 28, 2006
Hey,
I know I don't blog much so heres a few things that you probably saw if you read my comments, but...Anonymous
May 30, 2006
Just ran across your info about SQL/e and was excited to here about an alternative to Access and SQL/x. We currently use Access in our VB6 application. However, many of customers share the .mdb accross a network, which, if I'm reading correctly, SQL/e would not support. We're not thrilled at the prospect of installing and running SQL/x on each of their desktops.
I'm not sure I understand your statement:
"We are working hard to make sure we don’t paint ourselves, or allow developers to paint themselves into a corner and travel down a dead end path."
I would love to have "corner" that included SQL/e that could access the database file over a shared network folder.
Any new SQL/e developments in this area?Anonymous
May 31, 2006
Hi Steve,
The problem is SQL/e is designed and optimized as an in-proc, multiple connection, lightweight database. It’s not a client/server, multi-user database service that knows how to remotely service requests. Jet does enabled users to share mdb’s across the network, and while it has been productive, it’s also been one of the biggest source of problems. Rather then taking the one-size-fits-all approach, with the release of SQL/e we are working to divide and conquer the local in-proc database scenario and the multi-user client server database.
Considering the footprint, absolute minimal impact to your desktop machines, I’m curious why you’re not thrilled about installing SQL/e on each machine. Even if we supported shared .sdf files on a network share, we would still require SQL/e to be installed on each machine. That’s the nature of an in-proc engine. This is the same for Jet.
It’s worth noting that while we don’t support, and don’t intend to support, -shared- .sdf files on a network share, you can place the .sdf on a file share for single user usage. The first machine that opens the .sdf file will gain a lock that will block other machines from opening the file. This enables users who share their personal documents on a file share.
SteveAnonymous
May 31, 2006
Steve,
I think you misread my statement: We're not thrilled about installing SQL Express on each of our customer's desktops. We may end up doing it if we have to. Many of customers have a small number of workstations networked together with one acting as a server in the sense that it shares folders and files. In this environnment, it seems a bit much to install and run a service on each desktop to access a common data file. But I might be mistaken here :-)
The sync features sound interesting. Are they available now? Could you have SQL/e equipped workstations syncing to another SQL/e equipped workstation sharing the .sdf?
Thanks,
SteveAnonymous
June 03, 2006
Steve, I think your getting SQL Express and SQL Everywhere confused. You’re not the first; we trip up in meetings all the time <g>
SQL Everywhere doesn't run as a service. It's simply several dlls, totally less then 1.6mb. If you exclude the 227k ADO.net provider for SQL/e the entire SQL Everywhere runtime fits on a floppy.
When you install SQL Everywhere it simply copies these dlls to the %ProgramFiles%Microsoft SQL Server Everywherev3.1 directory. It then GAC's the ADO.net provider so it can be loaded by managed apps. There's no service running, EVER. If you're not using SQL/e as part of your app, it isn't running. It can't run as it can only run if it's loaded in-proc by an application.
So, the impact of installing SQL Everywhere is about as minimal as it gets.
Now, for your small networks where you want several desktops to share a common database, then yes, that’s the SQL Express scenario. You would install SQL Express on that one, and only one workstation. Each client can connect to that single workstation. In this case you likely wouldn’t have a local database on each machine as they’re all sharing the common SQL Express.
SQL Express is the free Data as a Service platform. SQL Everywhere is the single user data storage solution.
New sync features. We don’t have anything released yet. I’ll have some stuff to demo at Tech Ed, but nothing to share just yet. Yes, you’ll be able to sync between SQL Everywhere and a central SQL Everywhere database. In this case SQL Everywhere still isn’t being exposed as a service, rather you would configure your machine to expose Sync Services that would then load SQL Everywhere. While this is possible for some scenarios, our mainline scenario is to use SQL Everywhere on the client and sync with SQL Server (Express, standard, pro, …)
Now, just to fill in one more scenario, you can open an .sdf from a file share. However, the first machine that opens the file places a lock on it, and no other machine can open the file until the first closed the connection, thus releasing the lock. Because SQL Everywhere runs in-proc, the hosting machine literally opens the file and does the locking behavior. Jet has a lock file they place on disk, which while empowering has all sorts of issues.
Hope this helps,
SteveAnonymous
June 06, 2006
Another fantastic event kicked off in Nice, France today at the Acropolis.
Todd Warren delivered a...Anonymous
June 08, 2006
The comment has been removedAnonymous
June 12, 2006
SQL Server 2005's Express Edition is free, it supports database sizes up to 4GB, it allows seamless upgrades...Anonymous
June 13, 2006
VSTE4DP(Visual Studio Team Edition for Database Professionals) - 얼마전에 발표한 VSTE4DP의 CTP.
Biztalk Server...Anonymous
June 14, 2006
Steve, when you say "Our plan is for SQL/e to throw a not-supported exception when the hosting process is IIS", there is an issue that comes to my mind. Right now we are working on an application that needs to run on the web in multiuser mode, but also needs to run stand alone in disconnected scenarios. Because of costs concerns we decided that we would only develop a ASP.NET 2.0 version of the application and then would leverage this same version on local IIS for stand alone mode. I see that such an scenario would not be supported by SQL/e. But in any case, don't you think it would be interesting to pair SQL/e with Casini? I think this would be an interesting lightweight duo.Anonymous
June 14, 2006
Not much today.
WCF/SOA/WSE
The WCF RSS Toolkit is a Windows Communication Foundation-based framework...Anonymous
June 14, 2006
SQL Server 2005 Everywhere Edition is the&nbsp;followup to&nbsp;SQL Server 2005 Mobile Edition (SQL Mobile).&nbsp;&nbsp;...Anonymous
June 16, 2006
How can we access the Sql everywhere from the management studio?
The only servers I can get is localhostSQLEXPRESSAnonymous
June 30, 2006
It's a shame about the restriction with using it for ASP.NET applications. I can understand the reasons as they've been described but there is surely a case for Sql Everywhere being used for simple websites, where a full SQL Server hosting plan is overkill.Anonymous
July 02, 2006
For what it's worth, I support your decision to not support multi-computer access to SQL/e databases.
I once built a Jet solution that was accessed by multiple computers, and watched it sink when about 50 users hit it.
I then had to introduce a connection-pool between the client and the database, basically turning a simple two-tier app into a three-tier one!Anonymous
July 03, 2006
Hi and welcome to the SQL Mobile blog!
&nbsp;
The SQL Mobile team wants to make this blog a place...Anonymous
July 06, 2006
Hi,
Is SQL/E RTM going to support Windows 2000? CTP version supports only XP SP2+, but this post states that: "SQL/e will be enabled on all Win32 desktop platforms.".Anonymous
July 06, 2006
Steve Lasker has posted a screencast / video over on Channel 9 providing an overview on the various ADO.NET...Anonymous
July 10, 2006
Steve Lasker has a stream of information about this new technology. Start with his Info post and work...Anonymous
July 11, 2006
(this post was originally posted here)
Steve Lasker has posted a screencast / video over on Channel...Anonymous
July 20, 2006
Is SQL/e support Windows XP Embedded OS?Anonymous
July 23, 2006
This is wonderful, highly appreciated stuff.
You encouraged us in the Channek 8 video to send requests for Xml support.
Yes: please do! Xml will be crucialfor a more object orientated use: With Xml support, code revision and maintenance of applications by others will be significantly enhanced.
HansAnonymous
July 27, 2006
Hi Steve,
I must to realize a database application for an Automation system consisting of a Industrial PC with Operative System microsoft windows embedded.
1° question: Is Microsoft sql server 2005 everywere compatible for Microsoft windows embedded?
(I ask this because in specific of its is not clear)
2° question: In the case that it's compatible, if I instal it in a industrial Pc can it to act by database server or necessity of a remote server?Anonymous
July 27, 2006
So, what is 'SQL Server Everywhere Edition'?
Answer?
Check out this Channel 9 video with Anil Nori...Anonymous
August 12, 2006
With all this excitement about SQL Everywhere, i just wanted to post about another exciting database release for .NET and Compact Framework developers -- VistaDB 3.0.
We just released VistaDB 3.0 CTP, which unlike SQL Everywhere, is the world's first fully managed and typesafe SQL database engine designed for .NET and the Compact Framework. VistaDB 3.0 will run on fully managed on .NET, 64-bit .NET Compact Framework, Mono, and Windows Vista. Lots of features and interesting differences between VistaDB 3.0 and SQL Everywhere -- we hope .NET and Compact Framework developers take a serious look at what we built.
Comparison of VistaDB 3.0 vs SQL Server Everywhere:
http://www.vistadb.net/compare_sql_everywhere.asp
Screenshots:
http://www.vistadb.net/screenshots_vistadb3.asp
VistaDB 3.0 info:
http://www.vistadb.net/vistadb3.asp
Thanks for letting me post to your blog.
Anthony Carrabino
www.vistadb.netAnonymous
August 17, 2006
I understand your point about mdf file, but if the file is not encrypted in SQL Everywhere what would keep someone from reading the native file format and extracting the data. If they have the wherewithal to know to copy and attach the mdf file than it would be likely that they will know how to read an unencrpted SQL Everywhere file (via some download if they don't have the programming ability). Also, while the SQL Express service is running a user will not be able to copy the file. I assume this is not the case SQL Everywhere.
Is the above accurate?
What are the performance issues associated with encrypting the SQL Everywhere file?
How much of the SQL 2005 TSQL will be supported?Anonymous
August 17, 2006
The comment has been removedAnonymous
August 17, 2006
Crifo,
Windows Embedded:
Like Win2k, we do believe we can support Windows Embedded. However, there are enough differences that the QA team wants to run some test passes before committing to it. So, the answer is, it should work, we would most likely fix any bugs, but we’re still finalizing how official we’ll be on Windows Embedded. …stay tuned.
Remote connections:
I’m not sure I understand the question, but I’ll answer it this way. Let me know if you meant something else. SSEv does not listen to network traffic. There is no hosting service. However, you can do one of a few things. You can write your own Windows Service to expose it. You can also connect to the file by sharing the file sharing.
SteveAnonymous
August 20, 2006
Hi
We are devloping a database management utility for MSDE,sql server enterprise and sql EV
There are system queries available for performing index rebuild and setting minimum and max memory on msde and sql server by using the following statements below
"DBCC DBREINDEXALL(S)"
"SP_configure 'min server memory',1024 Reconfigure"
"SP_configure 'max server memory',6144 Reconfigure"
But is there a way I can perform the same on SQL Ev. I tried using the above statements, but it doesn't wor out, can anyone help me with statements specific to SQL Mobile or Ev.Anonymous
August 30, 2006
Is SSEv thread safe?Anonymous
August 31, 2006
Yes, SSEv, as an engine, is thread safe. Multiple processes, appdomains, apps, can all connect to the same SSEv data file at the same time.Anonymous
September 10, 2006
Hi
The main problem for me is, that SQL Server Express is too big of a download and takes too long too install so I was hoping that the SSEv will help me here, but since it dosn't support sprocs, views and UDF's its a real problem for me, did anything change in this regard since you wrote this blog?
Regards,
ShlomaAnonymous
September 15, 2006
Hi Shloma
No, we do not plan to support code in the database, which includes Sprocs and UDF's. Views are a bit interesting, but we believe the ADO.NET entity framework will provide the abstraction that views provide and more.
It takes folks some time to think about a local database differently. Simply put, when you have a database in-proc with your code, why would you limit yourself to the TSQL language. You can do a lot more with managed code than you can accomplish with TSQL. And, that assumes we have full SQL Server TSQL support. There's a reason the engine is so small, we have the focused features for an in-proc database.
What would you expect from sprocs? Abstraction? The database is part of your app? The typical abstraction layers required between the database and multiple apps just don't apply.
Performance? While we could sneak some performance for caching a query plan, we'd likely loose it for the extra "weight" of supporting sprocs?
UDF's? Again, what about using a function in full managed code? With LINQ, and the ADO.NET Entity Framework, we have a more powerful features at your hands. ...or you will...
Views? Aggregate multiple tables in a single view? Views typically only update one base table, ...sometimes. With the Entity Framework you can get the aggregation, and all tables are updateable.
We appreciate the need for wanting the same programming model locally when compared to the server. However, sometimes the uniqueness is something to leverage and embrace, not eliminate.
We are working on a white paper to try and explain the Express and Everywhere target scenarios. We hope to address the sprocs issue as well.
In short, we consider Everywhere Edition the default local database choice for local storage. Express may be used for local storage in extreme, but rare cases.
On the other hand, If you're locating data on a central machine for use by multiple people, then Express is your starting point. Express is our free, feature rich data as a service platform.
A perfectly valid scenario is Express on the central machine, and Everywhere Edition on the local machine.
SteveAnonymous
September 19, 2006
I'm getting a protected memory access error at times while using the product in a multi-threaded application. What is the best forum to post this issue?Anonymous
September 19, 2006
This product should be called SQL Server InProc and the code base should be split from the mobile version. Why?
In a short time, the number of users of the desktop version of SqlServerCe will far outnumber the Windows CE based users (a quick review of ms revenue splits by product division provides evidence for this).
Desktop machines have and will always have more capability than mobile machines. By splitting the code base you could add more features for your primary audience (desktop developers). Currently in SqlServerCe many basic SQL features are not available (SELECT TOP) multiple result sets, etc (sprocs would also be helpful but they should be restricted to operate on data within the database file only for security reasons). For the CE case it makes sense to leave these out because you are operating in a constrained environment. For the desktop version, doubling the size of the installed binarys would be of absolutely no consequence.
Furthermore, why should 95% of the users of this product have to use a somewhat confusing namespace "SqlServerCE"/"Microsoft SQL Mobile"?Anonymous
September 29, 2006
Will there be any support with BCP or similar tools to automate import or export of data from flat/text files?Anonymous
October 10, 2006
Hi, I was wondering if SQL Server Everywhere CTP or its final release will be 64-bit compatible? Thanks!Anonymous
October 13, 2006
Hi Christian, SSEv will have native 64 bit support, however, it's a bit out and won't be in the 3.1 release this year. Our current plan is to release 64 bit support in our 3.5 release next year.Anonymous
October 13, 2006
Hi Matt, We do have some tools work in progress, but that's also a bit out and planned in the 3.5 release. It's a longer story, but shipping products at Microsoft has a lot of "taxes". We have UI guidelines, accessability, globalization and localization, many platforms to support etc. The dev work is actually the easy part. I don't have any links handy, but I have seen the community and partners develop tools based on the SqlCeResultSet api that are very fast.Anonymous
October 13, 2006
Hi OS, Names, names, what's in a name anyway? At the end of the day, do you really care what the name is? <g> Or do you care what it does? We are adding additional query features in the 3.5 release, so some of these features will be coming. As for the namespace, we purposely didn't change it as we didn't want to break any existing code. One of the main values is the ability to share code from device to desktop. This is also why we don't want to introduce yet further differences between the device and desktop versions. As for size, well, even though SSEv is a fraction of the size of Express, in many cases it's still too big, even for desktop and we are doing some factoring work that will reduce the overall sizes further. ...I'm talking about future releases past 3.1 SteveAnonymous
October 13, 2006
Multi-threaded support- It would be great to get some repro code. The team monitors this forum: http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=152&SiteID=1Anonymous
October 19, 2006
I downloaded the sample Northwind.sdf database, it has spaces in many of the column field names? However the Northwind.mdb and the SQL Server Northwind database samples do not have spaces in the column field names. Why did they put spaces in the Northwind.sdf database field names? I have always been taught that is really "bad" it also makes it hard to write SQL statements in code - I guess you have to bracket each field name that has a space? example INSERT INTO Employees ([Employee ID], ... is that how you handle spaces in field names for SQL Everywhere northwind.sdf? But I am very excited about SQL Everywhere I hope Microsoft makes it a replacement for Access and gives it limited multi-user connections (like maybe upto 5 or so) and would like multiple connections from different processes which I think I read you can do! Great work - this is what I need for my applications and I need both native and managed capability. Neal DavisAnonymous
October 22, 2006
Hi Steve, My company have a smart client application that uses cached data in XML files for offline access. These files are getting larger each day and to query it using DOM is causing performance problems. So I started playing with SSEv to see if we would have any problem to use this aproach instead of XML files. Everything worked great, except for one thing. Let me explain the scenario. Whenever we have to change the data schema, the smart client application have to download the whole XML files again. Because the XML files are now 50MB large, the server side uses a zip compression algorithm that reduces these files to 4MB, the client app downloads the file and decompresses them. We use Agile, so these schema changes are not so rare. Testing with SSEv the .sdf file size was around 23MB, but there was no way to compact it. I tried the Compact() and Shrink() methods with no success. I even tried using WinRar, but the file size remained the same. Is there any special way to compress the .sdf file size? Thanks, Cassio AlvesAnonymous
October 23, 2006
It has been a while since I have done any SQL Server work, but I was wondering how I would retrieve identity values without stored procedures? Also, without SProcs, there is a real burden put into the code side for any non-trivial transaction programming. I would need to code my multi table updates through ADO and block transaction them in code. Or am I missing something? Thanks DavidAnonymous
October 26, 2006
Northwind Spaces: In one sense I agree, and think spaces in column names is just a bad design and leads to all sorts of problem. However, for better or worse, it is supported. Our sample databases are typically built to help test out the features in the product. That can go overboard in many ways. The Northwind sample for SSEv, or the AdventureWorks sample that ships with SQL Server 2005 which had feature soup and just went overboard as well. The teams are working on a simplified, more realistic version of AdventureWorks. We’re hoping to have that sample available for SSEv as well. SteveAnonymous
October 26, 2006
XML Compression: Hi Cassio I’m not sure if you’re asking if inserting XML data can be compressed, or just how to use the Compress API on the SSEv engine. To compress the database: Close all connections and call SqlCeEngine.Compact (<new database name>) Change the value of auto shrink threshold to 10% in the connection string. Compact will make a copy of the database in a compressed format. SqlCeEngine.Shrink() will clean up deleted pages in the same database file. Since xml file is almost like a text file, compressors like winzip, winrar can apply their text compression algorithms. That’s the reason why you’re seeing a good amount to size decrease in your XML file. When the same data is stored in our database, we don’t store them in plain text. So these compression algorithms cannot play a huge role here. SteveAnonymous
November 03, 2006
Any news re the release date? Thx, OliAnonymous
November 06, 2006
SQL Server 2005's Express Edition is free, it supports database sizes up to 4GB, it allows seamless upgradesAnonymous
November 19, 2006
Hi and welcome to the SQL Mobile blog! The SQL Mobile team wants to make this blog a place where we canAnonymous
November 28, 2006
The comment has been removedAnonymous
December 03, 2006
Can someone point me to a C++ example for SSEv? (not .NET) - want to learn about moving a JET database to SSEv.Anonymous
December 08, 2006
The comment has been removedAnonymous
January 01, 2007
I have recently joined with a project that looks for a In-Memory Database for client-side caching solution.Anonymous
January 04, 2007
The comment has been removedAnonymous
January 12, 2007
Hi and welcome to the SQL Mobile blog! The SQL Mobile team wants to make this blog a place where we canAnonymous
January 16, 2007
Hi WishfulDoctor, The answer to your question is yes, but not as clean as we'd like. There is full support for SQLce in native code, but full doesn't necessarily mean consistent with MDAC. The RecordSet model isn't fully supported in the native stack of SQLce, so while you can use SQLce from native code, the communications are a little lower level. There's a little info here in this blog post from the team: http://blogs.msdn.com/sqlservercompact/archive/2007/01/13/windows-2000-support.aspx. We will continue to support native development, but don't have official plans on adding support for the recordset programming model of MDAC. While I'm focused on managed development, I can't help but point out that Vista comes with .NET FX 3.0, but that's just a plug from the Developer Division. SteveAnonymous
January 16, 2007
Hi Arasu, Here's some samples posted by the SQLce team: http://blogs.msdn.com/sqlservercompact/archive/2007/01/13/windows-2000-support.aspx The topic says Windows 2000, but within the post, there's a link to: http://msdn2.microsoft.com/en-us/library/ms173261.aspx SteveAnonymous
February 05, 2007
The comment has been removedAnonymous
February 09, 2007
Steve; Do you think Microsoft will eventually create a UI application for SSCE like it has for Access? That is, an application that allows you to easily create tables, columns, rows, etc. just like the MS Access application allows you to do with .mdb files? Neal DavisAnonymous
February 24, 2007
Hi Neal, Do you need yet another application to do this? Today, we have Visual Studio and SQL Server Management Studio for developers/DBA's. If we enabled Access to work over SQLce, would that be what you're looking for? Essentially, the answer is we don’t want to create yet another application, but rather enable SQLce within the existing tools and environments. SteveAnonymous
April 02, 2007
The comment has been removedAnonymous
April 02, 2007
Hi Matt, I can't say I've seen this. Typically, CE connections are near instantaneous. Could you confirm you're using SQLce 3.1 http://microsoft.com/sql/compact ? It would be good to get some info on your environment, OS, etc. Please feel free to send to my email via the link in the top left corner. SteveAnonymous
May 23, 2007
One of my favorite features in Orcas is the ability to leverage the ASP.NET Application services fromAnonymous
August 29, 2007
Since the release of SQL Server 2005 late last year the mobile devices community have been discussingAnonymous
September 04, 2007
Thanks for help. I also found a good collection on it http://dotnetguts.blogspot.com/2007/08/sql-server-faq-interview-questions.html http://dotnetguts.blogspot.com/2007/08/sql-optimization-tips.htmlAnonymous
September 24, 2007
Not much today. WCF/SOA/WSE The WCF RSS Toolkit is a Windows Communication Foundation-based frameworkAnonymous
November 27, 2007
How can I open (in an application) a protected .sdf database ; I used this code but doesn't work: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim objConn As New SqlCeConnection Dim pwd As String = "RMN123!@#" Dim connStr As String = "Data source=My Documentsb1.sdf; SSCE:Database Password=pwd" objConn.ConnectionString = connStr objConn.Open() Me.AG1TableAdapter.Fill(Me.B1DataSet.AG1) If you can help me send an email at radunicolae1@yahoo.com ThanksAnonymous
November 27, 2007
Hi Robert, Your hitting a common string concatenation issue. Your code above is setting the password = to the literal value; pwd, rather than the value of the pwd variable. Dim connStr As String = "Data source=My Documentsb1.sdf; SSCE:Database Password=" + pwd Or String.Format("Data source=My Documentsb1.sdf; SSCE:Database Password={0}", pwd) SteveAnonymous
December 12, 2007
The comment has been removedAnonymous
December 12, 2007
The comment has been removedAnonymous
December 14, 2007
Hi Robert, I see your using a new SqlCeConnection, setting it up, then calling Me.AG1TableAdapter.Fill. What's happening is the TableAdapter doesn't automatically associate with the new connection you're creating. If you look in the Settings Designer, you should see the connection string the TableAdapter uses and can set it there. You can also set the ConnectionString on the TableAdapter. That will get them together and it should work. SteveAnonymous
December 16, 2007
Thank you, setting the password works fine. Now I have another question: is there any possibility to protect a pocket-pc application ? That means when somebody (unauthorized) tries to copy the application (wich consists of these two files - the database.sdf and the executable itself) to get the message "Sorry, you don't have rights to use this application...". I saw that exists a function like : IOCTL_HAL_GET_DEVICEID but I also understood that not all of the pocket-pc support this . I try to read at the begining of the application the "Device-ID" of the pocket-pc; if this is the one where I installed the application -continue , otherwise-Exit application. Thank you very much for your helpAnonymous
December 18, 2007
Hi Steve, now comes the more difficult part for me ; I want to make an application which uses both a desktop (or two ,in a network) PC and 4 Pocket-PC's ; to be more concrete it's about registering on Pocket-PCs the orders made by customers in a little resturant at each table by a waiter and transmit the orders from these 4 tables to the Database on the desktop PC which could be placed in the kitchen,for example (like a client-server application); What do you sugest me to use in this case ; can I use Visual Basic 2005 to make this kind of application ? What database software do I need exactly (for PC and for Pocket-PCs); I did't see the relation between a .mdf file and a .sdf file (like it is when I use Access - with .mdb file , and when transferring on Pocket-PC it is transformed by conversion in a .cdb file with same data); can I do a transfer from a .sdf database (pocket-pc) to a database on a desktop PC ? I also intend to make the connection (synchronization) by WiFi. Thank you very much for your help.Anonymous
December 20, 2007
I managed to resolve the problem with Device_IDAnonymous
December 27, 2007
Hello Steve, How can I restructure a .sdf SQL CE database ? (inside Visual Studio 2005 I didn't find any possibility) Thank you for your answersAnonymous
December 28, 2007
Hi Steve, How can I open another form from the first one in an application with a SQL Server Compact Edition database (from Form1 I cannot find the function to open the Form2 ) ; Form1 is for selection (Query) and Form2 is for entering new data in the .sdf database Thank you very muchAnonymous
January 09, 2008
Hi Robert, by restructure, do you mean edit the schema of the tables? VS 2005 supports tooling for SQLce 3.1. VS 2008 supports tooling for SQLce 3.5. SteveAnonymous
January 09, 2008
Hi Reberto, Interacting with forms can be done in a few ways. VB added the My namespace in VS 2005 so developers can simply say My.Forms.Form2.Show() Both VB and C# can use the traditional .NET object instantiation of: VB: Dim form2 as New Form2() form2.Show() C#: Form2 form2 = new Form2(); form2.Show() To pass info into Form2, you could overload the Show method form2.Show(parameter for PK) or provide another method form2.LoadCustomerById(idOfCustomer) You might want to do some reading on Windows Forms for desktop or device as this model is common to both. SteveAnonymous
January 17, 2008
Hi Steve I need to know if my client needs a type of CAL for an application that use a Mobile stand alone data base instaled in a device. I'm using SQL Server CEAnonymous
January 18, 2008
Hi David, SQL Server Compact is free to use, free to distribute, and free to embed within applications, so no, you don’t need any CAL’s to use SQLce. Connecting to SQL Server, whether through ADO.NET, Sync Services or Merge Replication requires a CAL for each connection, but that's unrelated to the source that happens to be SQLce. The thing to not is SQLce doesn’t give people a free CAL to SQL Server. SteveAnonymous
January 26, 2008
If the Compact edition will throw an exception when trying to use it from a process hosted by IIS I can state that I will look for a different databse solution for my product. Gilad.Anonymous
February 02, 2008
Hi Gilad, What we're trying to do is simply let developers know that SQL Server Compact, like other products in the same space, simply don't compare with SQL Server. We do support you 'unblocking' it for ASP.NET usage, but wanted to put a "sign" up so developers knew. I'd suggest that other products in this space are no better, and in most cases worse for these scenarios under any sort of load. For how to unblock, and the reasoning, here's a post: http://blogs.msdn.com/stevelasker/archive/2006/11/27/sql-server-compact-edition-under-asp-net-and-iis.aspx You can also simply check the SqlCeConnection docs, and you'll see how the official documentation we placed in the product. SteveAnonymous
July 04, 2008
Is it possible to program SQLCE from VB.Net Express 2005 or Express 2008? When I do "add new data source" I don't see the SQLCE provider? I only see SQL Server and Access providers? I am able to create a SQLCE database from SQL Server Express Management Studio. I want to use the dot net 2 framework. So that's version 3.1 right? I also tried using it from vb6 but I don't see the oledb provider. I got the version of SQLCE that came with SQL Server Express 2005 sp2, but I also downloaded version 2005 (3.1) and installed it.Anonymous
July 09, 2008
Hi Heine, Unfortunately, we don’t have support in VS 2005 Express as Compact was released for desktop usage after 2005 shipped, and 2005 shipped SQL Server Mobile for the Windows Mobile platform which didn’t ship in any Express SKUs. I discussed the 2005 configuration steps here. However, you can use Compact 3.1 or 3.5 from VS 2005 Express in coding scenarios by simply adding a reference to the managed provider and partying away in VB.net or C#. It’s really a tools limitation in 2005. In 2008, we have full support for Compact 3.5 across all VS and SQL Server SKUs, including Express. The one exception is the VS 2008 Web Express SKU as we don’t yet have Compact enabled for web development. For VB6, while Compact does have an OleDB interface, it’s really targeted at the subset required for Windows Mobile. It’s not a “full OleDb provider” required for desktop designer scenarios which is why you don’t see it as an option in any of the tools. We have discussed expanding our OleDB support, but with our forward progress in .NET, we felt it best to look forward and do that much more in .NET. That said, you could write a .NET assembly doing your data access, can enable that assembly for COM consumption. SteveAnonymous
July 10, 2008
Is it possible to use SQLCE 3.5 with the dot net 2 framework? Alternatively can you use SQLCE 3.1 from VB Express 2008? I coudn't add a new data source. I would like to visuallly define connections etc but I must use VB Express 2005/2008 with the dot net 2 framework. Is my only option to make a referance to the DLL?Anonymous
July 13, 2008
Hi I downloaded the latest version 3.5 SQLCE and also the books online. I went thru the examples. It looks like when you want to use SQLCE for desktop apps and program it with managed code then you have to set a reference to the SQLCE namespace. It looks like you can't use ado.net. I am using VB Express 2008. Is this correct?Anonymous
July 13, 2008
I read a couple of things in the SQLCE books online. Apparantly you can perform a shrink operation on the database and you can also set an option to auto shrink. There is also an option to compact the database. Do you HAVE to perform a shrink? Doesn't it re-use deleted space like SQL Server Express or the paid versions of SQL Server? Does auto shrink slow down your database operations dramatically? Is the purpose of compacting the database to remove fragmentation? I know in Access you have to compact in order to remove deleted space. In both cases it rebuilds the database when compacting. Just out of interest, how long does it take to compact a 4 gb database? Does SQLCE have any advantages over JET 4.0? (Access 2003) I know that JET 4.0 got a very small memory footprint but there are a number of DLL's to deploy. It's not as easy as SQLCE for deployment. Also, you need to buy Office in order to create/edit databases. Access 2003 is also limited to 2GB vs SQLCE's 4GB database limit. I know SQLCE 3.5 needs 256MB RAM minimum, but what is the recommended memory requirements for SQLCE? SQL Server 2008 Express, which is still in beta, also has 256MB minimum memory, but the recommended memory is 1gb.Anonymous
July 13, 2008
I read on another blog that you can install the design tools for SQLCE manually. I grabbed my Visual Studio Express DVD and did exactly that. I was able to go add new data source and I was able to view data in a simple form. I am sorry to bother you, but would you still consider answering my other questions? Yes you are right, you can only use the dot net 3.5 framework. I tried older versions of the dot net framework and got lots of compile errors.Anonymous
July 14, 2008
SQL Server Compact is based on a dependency of .NET FX 2.0. .NET FX 3.0 and 3.5 are really 2.0 +, +. This is what happens when marketing and branding get involved in code versioning… Due to the way VS 2005 and SQL Server Mobile 3.0 were packaged, we couldn’t achieve VS 2005 Express designers, so in 2005, yes, you’ll need to work in code. However, during 3.5, we did the work to enable Express designer support, so in VS 2008 you can use the designers across all the SKUs. …but only for SQL Server Compact 3.5. We weren’t able to add multi-version tooling support in this release. SteveAnonymous
July 14, 2008
Shrink is only required if you want to force the shrink operation immediately. You can sort of think of it like Garbage Collection. It will kick in automatically, but sometimes you want to say “now”. Similar to GC, it doesn’t slow things down as it’s fairly efficient on when to perform compaction, so it’s typically best to let it do it’s thing. If you’ve done a lot of deletes and you need to recapture the space immediately, you may need to call Shrink. There are many advantages over Jet, and some disadvantages. With Compact, you can privately deploy the database engine directly with the app. Jet is currently in many operation systems already, but is it the version you need? Compact also has much better tooling in VS and SQL Server as this is the database DevDiv and SQL are focused on. That said, Compact doesn’t have direct tooling support in Office yet as we’re not actively pursuing OleDB yet, and Office is just starting to “embrace” managed code. I’m not sure where the 256mb min RAM came from, as it’s not really a Compact requirement, but rather an overall Windows and .NET FX requirement. Compact consumes only a few megs, based on the size of the database. Based on Windows Mobile requirements, you should never be limited in memory by Compact. Rather WPF, WCF, .NET FX, etc. SteveAnonymous
July 17, 2008
The comment has been removedAnonymous
July 25, 2008
Hi Heine, Our tools for Compact 3.5 are composed into Visual Studio 2008 and SQL Server Management Studio 2008. The good news is we now have full support in the Express SKUs of VS and Management Studio, but they are "installs". For stand alone tools, or even tools that could be run directly from a DVD, you could expand upon this sample I’ve provided here, the database viewer. It simply displays data, but you could expand upon it to show a graphical showplan with WPF, or other neat things. There are several MVPs that have tooling external to VS, but they do need to be “installed” as well. SteveAnonymous
August 01, 2008
Hi What do you think are the chances that SQLCE will be bundled with the next version of Access? My real question is if it will be possible to develop a front end with the next version of Access and use SQLCE as the back end? It should be possible in theory, but I don't know if Microsoft would want to go that route.Anonymous
August 03, 2008
Hi Heine, It’s hard to say “Microsoft would want to go that route”, as Microsoft is such a big company made up of so many product units and teams. As for packaging with Access, it’s not currently on our plan. Because Compact is used in so many scenarios and products, it’s difficult to “pursue” each one individually. We’ve been working to release Compact as an independent product that other teams can “pick up”. While not directly linked to Access we will have future Office usage, but you’ll have to wait for PDC for that :) SteveAnonymous
September 03, 2008
The comment has been removedAnonymous
September 11, 2008
Is there a way that you can download and install SQL Server 2008 Management Studio Basic on its own? I know it comes with SQL Server 2008 Express but I just want Management Studio Basic to browse SQLCE databases. Do you know what the minimum requirements are for Management Studio Basic? Some times you don't want to install everything just the management studio basic. HeineAnonymous
September 11, 2008
Hi Heine, While we hoped to have a Management Studio Tools stand alone release, the Express team did fall back to only supporting a download that included the Express engine as well. You can use VS 2008 Express (VB/C#) as small tool downloads to manage Compact databases as well. Will that give you what you need? Or do you need the Query Editor and Graphical Showplan features that currently only ship in Management Studio? SteveAnonymous
September 12, 2008
Hi I wanted a light weight product that would be able to browse and edit SQLCE databases. One that would be able to run on an XP machine with only 128MB RAM. I suppose it's not too dificult to write your own tool. I don't mind typing queries manually as long as I can see the results of those quries.Anonymous
September 16, 2008
Steve, I also posted the same question in the SQL server forum and they said that during the SQL Express installation, you can choose to only install management studio basic. That sounds like the answer I was hoping to hear. I have already downloaded SQL 2008 Express, but I just wanted to know if it is possible to only install the managment studio basic.Anonymous
December 05, 2008
Not much today. WCF/SOA/WSE The WCF RSS Toolkit is a Windows Communication Foundation-based framework for generating RSS 2.0 and Atom 1.0 content feeds Steve Maine on the WCF RSS Toolkit The latest WCF Documentation CTP (June 2 release) is now availableAnonymous
February 03, 2009
The comment has been removedAnonymous
November 03, 2010
The comment has been removed