Welcome to MSDN Blogs Sign in | Join | Help

SQL Server Everywhere Edition Community Technology Preview

 

 

SQL Server Everywhere Edition Community Technology Preview

 

A Community Technology Preview of SQL Server Everywhere Edition, the newest addition to the SQL Server family is being announced at TechEd on Monday, June 12th.  The CTP will be available at www.microsoft.com/sql/everywhere.  SQL Server Everywhere Edition is the next generation of SQL Server Mobile, offering essential relational database functionality in a compact footprint, ideal for embedding in mobile and desktop applications.

 

For CTP the SQL Server Everywhere Edition MSI is uploaded on the web. This MSI contains only the desktop runtime bits of SQL Server Everywhere Edition. Runtime bits include the Storage Engine, Query Processor, OLEDB Stack, ADO.Net stack and the client side connectivity components. This MSI can be installed on any machine (even on machine which doesn’t have SQL Server 2005 or Visual Studio 2005). You need to be an administrator to install this MSI. When the MSI is installed SQL Server Everywhere Edition runtime bits are placed under %PROGRAM FILES%\Microsoft SQL Server Everywhere\ directory. The ADO.Net provider Dll will be GACed during the installation.

 

Tools support: Developing desktop application using SQL Server Everywhere Edition:

In SQL Mobile when we supported developing desktop applications for Tablet PC, the development story was not very smooth. User needs to do some manual copy of Dll to make it working. Now with SQL Server Everywhere Edition CTP, we enable a smooth development story for desktop applications. No manual steps are involved. To make the development story complete we also enabled smooth deployment (ClickOnce)

 

ClickOnce / Data Directory support:

Along with the SQL Server Everywhere Edition CTP, the bootstrap package for SQL Server Everywhere Edition is available on the web to enable click once scenario. Developers can download both the MSI and click once bootstrap and install it. Once they complete developing desktop application with SQL Server Everywhere Edition, they can use this bootstrap package to enable ClickOnce deployment on desktops. Data Directory macro is also enabled when connection is established through SqlCeConnection object.

 

Uniform database story across device and desktop:

Since SQL Server Everywhere Edition is build over the SQL Mobile technology, we retain database compatibility between these two. With Whidbey SP1, developers will get the device bits of SQL Server Everywhere Edition. Since the database compatibility is maintained, users can copy the database from device to desktop or vice versa and continue to use the file. With this we enable a uniform database story from device to desktop.

 

Redistributing SQL Server Everywhere Edition MSI:

            Developers can package the SQL Server Everywhere Edition MSI along with their desktop application setup. During their setup they can invoke the MSI and SQL Server Everywhere Edition bits will be placed on the central %PROGRAMFILES%%\Microsoft SQL Server Everywhere\ directory. You need to have admin rights to run this MSI. Whenever SQL Server Everywhere Edition is installed through MSI (under admin rights) then Microsoft will be able to service it.

Developers can also copy and package SQL Server Everywhere Edition Dll’s along with their applications. In this case Microsoft will not be servicing these Dlls.

 

Database Management support:

            Databases which are created through SQL Server Everywhere Edition CTP can be managed through SQL Server Management Studio. Through SQL Server Management Studio all database operations on SQL Server Everywhere Edition is enabled. SQL Server Management Studio which shipped with SQL Server 2005 RTM, SP1 will still say SQL Mobile in UI. Since SQL Server Everywhere Edition is built over SQL Mobile technology the dialog which says SQL Mobile will continue to work for SQL Server Everywhere Edition. With SQL Server 2005 SP2 release, those dialogs will start to say SQL Server Everywhere Edition.

 

Development tools support:

            In Visual Studio 2005 RTM all dialogs which continue to say SQL Mobile will continue to work for SQL Server Everywhere Edition. With Visual Studio 2005 SP1, those dialogs will be changed to SQL Server Everywhere Edition.

 

Synchronization with SQL Server 2005:

            SQL Mobile which shipped with SQL Server 2005 and Visual Studio 2005 support synchronization with SQL Server 2005, using the SQL Mobile Server tools installation. The same setup will continue to work for SQL Server Everywhere Edition CTP.

 

We are waiting for you to use SQL Server Everywhere Edition CTP and looking for your feedback. I am Manikandan, Development Lead in SQL Server Everywhere Group.

 

Thanks

-Mani

Published Monday, June 12, 2006 8:04 PM by SQLMobile

Comments

# re: SQL Server Everywhere Community Technology Preview

Monday, June 12, 2006 8:43 PM by JohnGalt
Thanks for the info, I saw it go up on Friday and I was hoping someone would start blogging about it :)

Some questions:

I'm deciding if I want to go down the path of getting rid of our dependancy of SQL Server Express or not and using Mobile.  We have 3 stored procs that can easily be moved back inside our application. Our application needs to work connected directly to an SQL Server (network user) or connected directly to a Mobile installation for data.  To that effect I have a couple of questions.

1. Is there a size limitation to the database file? I.e. since it can only be used on the specific computer, is there a 4 gig limit? I hope you're answer is no, because this would solve a huge problem for us with Documents and the like that get stored in our database.

2. Because we need the same application to connect to both SQL Server and Mobile, I'm concerned about transparency on the database end. All of our database work happens through SQL Data Adapters (.NET 1.1 legacy) and a couple of functions that return dataReaders and DataTables. The DataTables I assume wouldn't be a big deal to overcome because I can just handle if/else and fill stuff differently depending on the case.  In the case of the DataReader is there an analog in mobile that I can call that would be some sort of IDataReader or something?
In the case of the DataAdapters, what can I do there? Is it possible to use the standard SQLDataReader and just use a special Mobile connection string or something?

I'm hoping that you have suggestions for work arounds, because the deployment issues with SQL Server Express are getting rediculous, and the 4 gig limit is killing me, and this would solve both of those BIG TIME.

Thanks!

# re: SQL Server Everywhere Community Technology Preview

Tuesday, June 13, 2006 6:05 PM by SQLMobile
Here are the answers to your question.

1. Do SQL Server Everywhere has a size limit
Yes, we do have a limit on the maximum database size. We support only up to 4GB.

2. SQL Server Everywhere depends on .Net Fx 2.0. We do support DataReader in SQL Server Everywhere. We have SqlCeDataReader derived from IDataReader.

SqlCeCommand.ExecuteReader will return SqlCeDataReader. Here is the msdn link. http://msdn2.microsoft.com/en-us/library/system.data.sqlserverce.sqlcecommand.executereader.aspx

In SQL Server Everywhere we also support DataAdapter. Our class name is SqlCeDataAdapter which derives from DbDataAdapter.

Here is a sample code using SqlCeDataAdapter.

SqlCeConnection conn = new SqlCeConnection("Data Source = AdventureWorks.sdf");

SqlCeCommand selectCmd = conn.CreateCommand();
selectCmd.CommandText = "SELECT * FROM DimEmployee";

SqlCeDataAdapter adp = new SqlCeDataAdapter(selectCmd);

DataSet ds = new DataSet();

// Note: Fill will leave the connection in its original state;
// In this case, the connection was closed so it will be left closed
//
adp.Fill(ds);


Thanks
-Mani

# re: SQL Server Everywhere Community Technology Preview

Thursday, June 15, 2006 12:13 AM by JohnGalt
Thanks for the update!

1. Why the limit when you're talking about a system that can't communicate off of the computer? To me that eliminates the need for the limit. I would strongly urge you, in the day and age of storing documents and images in databases, to rethink this limit and go without in this product. I understand it in the Express packages because you don't want to have people using it for large deployments, but in this case, that's not an issue and currently, unlike with SQL Server 2000 you don't have a "Personal" edition so there's no cost effective way to upgrade the client machines that are using offline data and allow > 4 gigs with SQL Server 2005/Express/mobile.

2. So from what you're saying I could upgrade my functions to return IDataReader and DbDataAdapter instead of the specific versions and I would be good to go, no?

Thanks again! Here's hoping something can be done about that 4 gig limit...

# re: SQL Server Everywhere Community Technology Preview

Sunday, June 18, 2006 12:27 AM by dsani
for existing projects using VB 2005 Pro and SQL Express:
Both the connection string as well as the datasets have been generated by the designer in the existing project.

1)Is it possible to just change the connectionstring in the project properties to make the projects work with SQL everywhere?

2) Our sceanrio - we have numerous small applications which can run using sqlexpress.
So is it possible to have the same VS 2005 solution to be used with SQL Express or SQL Anywhere by just changing the connection string?

thanks.

# re: SQL Server Everywhere Community Technology Preview

Sunday, June 18, 2006 4:56 AM by SQLMobile
John,
Regarding 4GB limitations, at present we are not committed to remove it. We are discussing internally to see the right time to remove this limitation. It will not surely happen in the next few months.

As you mentioned, you can smoothly move to base class object or interfaces and you will be good to go. (so you can move to IDataReader and DbDataAdapter)

DSani,
Currently the namespace and class name are different from SQL Express (System.Data.SqlClient) and SQL Sever Everywhere (System.Data.SqlServerCe). So just changing the connection string will not work. You can start writing code in such a way that you can use the base classes and interfaces, so that you don’t need to worry about the actual class names. But there are cases where you need to instatiate classes, in those place you need to have code separate for SQL Express and SQL Server Everywhere. For ex if you need to instantiate SqlConnection you need to have separate code for SQL Express and SQL Server Everywhere.

In ADO.Net 2.0, they have come up with a programming model to solve this problem. In that model, all the data source (SQL Server, SQL Express, SQL Server Everywhere), needs to register to a provider factory. You can use ADO.Net base classes to get the right object using provider factory. For more information you can refer to http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/vsgenerics.asp

At present SQL Server Everywhere is not registering itself to provider factory. So you wont be able to instantiate SQL Server Everywhere classes using provider factory. We will be adding this functionality in the next release of SQL Server Everywhere.

Feel free to post more questions…

Thanks
-Manikandan Thangarathnam (Mani)

# The Mobile Minute 142

Wednesday, June 21, 2006 1:47 AM by Nino.Mobile
Software / Hardware 

NewsGator Mobile is now in public beta. Check it out.  Thanks to Neil...

# re: SQL Server Everywhere Community Technology Preview

Wednesday, June 21, 2006 12:13 PM by dsani
Mani,

I have tried SQLEverywhere with an existing project (which works well with SQL Express)
But this insert query written on the dataset- Emp tableadapter doesn't work:
It gives an error message:
"SQL Execution Error!
Error Source: SQL Server Mobile Edition ADO.Net data provider
Error message: Parameter is missing [Parameter Ordinal =1]
"

Though I can understand this is a sql processing error, but the same works with sqlexpress fine.

Look forward to your guidance.

Regards
DSANI

# re: SQL Server Everywhere Community Technology Preview

Wednesday, June 21, 2006 12:14 PM by dsani
Mani,

Here is the Insert statement:
INSERT INTO Emp ([EmpName], [EmpDOB], [EmpActive], [InstID], [DeptID]) VALUES (@EmpName, @EmpDOB, @EmpActive, @InstID, @DeptID);
SELECT EmpID, EmpName, EmpDOB, EmpActive, InstID, DeptID FROM Emp WHERE (EmpID = SCOPE_IDENTITY())

regards
DSANI

# re: SQL Server Everywhere Community Technology Preview

Saturday, June 24, 2006 7:44 AM by lysy95
Hello!
I'm trying to move from MSDE to SQL Everywhere in my project, which requires using of ADO classic and i have some problems storing ntext data in SQLEv database using parametrized command.

Could it be that the problem is because of ADO classic? Is it ok to use old ADO with SQLEv OLEDB provider and will you maintain compatibility with old ADO in SQLEv?

Below is JScript code illustrating the situation:
-------------------------------
var oConn = new ActiveXObject("ADODB.Connection");
oConn.Open(sConnStr);
var oCmd = new ActiveXObject("ADODB.Command");
oCmd.ActiveConnection = oConn;
var sText = "test text";
oConn.Execute("create table tblTest(sText ntext)");
oCmd.CommandText = "insert into tblTest(sText) values(?)";
oCmd.Parameters(0).Value = sText;
oCmd.Parameters(0).Size = sText.length;
oCmd.Execute();
-------------------------------
It gives me 'Microsoft SQL Server 2005 Everywhere Edition OLE DB Provider: The given type name was unrecognized. [,,,,,]'.

If i remove 'oCmd.Parameters(0).Size = sText.length;' error changes to 'Insufficient memory to complete the operation.'

The same code works ok for MSDE and SQLExpress.

Many thanks!

# re: SQL Server Everywhere Community Technology Preview

Wednesday, June 28, 2006 4:59 AM by SQLMobile
To use SQL Everywhere under ADO, here is the sample code.
Dim connstr As String
       connstr = "Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;Data Source=c:\\db.sdf;Persist Security Info=False;SSCE:Database Password=Pass"
       Dim conn As ADODB.Connection
       conn = CreateObject("ADODB.Connection")

       Dim rs As ADODB.Recordset
       rs = CreateObject("ADODB.Recordset")
       conn.Open(connstr, "", "")
       Dim sqlStr
       sqlStr = "Select c1 from t1"
       rs.Open(sqlStr, conn)
       ListView1.Items.Clear()
       Do Until rs.EOF
           ListView1.Items.Add(rs("C1").Value.ToString())
           rs.MoveNext()
       Loop

       conn.Close()

We don’t officially support ADO programming for SQL Server Everywhere. I am giving this sample code to unblock you. But I want you to migrate over to OLEDB or ADO.net (which are the 2 supported programmability stack for SQL Server Everywhere).

DSani, regarding your insert issue, I am looking into it. I will reply once I finish my investigation.

Thanks
Manikandan Thangarathnam (Mani)

# re: SQL Server Everywhere Community Technology Preview

Wednesday, June 28, 2006 5:44 AM by lysy95
Hello Mani!

Thank you for your reply!

Yes, i would like to migrate to ADO.net or OLEDB, but in this application it is quite impossible because large part of it is a JScript code, which requires something IDispatch based like e.g. ADO to work with.

I managed to solve the problem by using OLEDB and ISequentialStream to store/access BLOB data, but this is still not a solution in my case cause it requires changing a lot of JScript code to use the new object model. Yet, SQL Everywhere looks so handy for me that i just can not give up. So i came to decision to try and write own OLEDB provider over OLEDB provider for SQL Everywhere, which would be compatible with ADO while dealing with BLOBs, but this doesn't look as good solution neither by design nor from performance point of view, doesn't it?

Why don't you make OLEDB provider to be compatible with ADO Classic, this would be a great deal for native/'legacy' applications (after all they are also parts of 'Everywhere').

Thanks again,
Sergey.

# re: SQL Server Everywhere Community Technology Preview

Saturday, July 01, 2006 3:05 AM by SQLMobile
Sergy,
As of today we are not supporting ADO for SQL Server Everywhere. We are seeing some request for ADO support. Since ADO.Net is where we want all the developers to go, at present we are not putting any resource for supporting ADO. It will be good, if you tell us about your deployment scenarios, number of deployments etc.

Thanks
-Manikandan Thangarathnam (Mani)

# re: SQL Server Everywhere Community Technology Preview

Tuesday, July 04, 2006 10:59 AM by lysy95
Mani,

This is a shareware project and for this version i expect hundrends or thousands installations for the 1st year. Deployment requirements are very simple actually: everything should be as smooth and simple as possible for an average user to be able to download, install and try the application with no or minimal assistance. In detail, the idea is to make the application to scale well depending on user's needs, using the following approach:
- default installation with embedded DB engine, fully automatic, no configuration, small work load assumed for the app, downloadable via Internet (small size), intended primarily (though not only) as a demo version
- supported installation (probably assisted), MSDE, SQLExpress or full MS SQL Server as database engine (up to customer's choice), high work load assumed

Prior to SQL Everywhere i planned to use Firebird 1.5 as the embedded engine thus facing some difficulties because of different datatypes, DDL and even data selection (because of different approaches for ranking of result sets in Firebird and MS SQL Server), but now SQL Everywhere seems to meet every our requirement and to be an ideal solution in our case, except that issue with ADO.

Many thanks!
Sergey.

# Creating SQL Mobile database file from Delphi application | keyongtech

# SQL Mobile Blog SQL Server Everywhere Edition Community Technology | Uniform Stores

# SQL Mobile Blog SQL Server Everywhere Edition Community Technology | Insomnia Cure

# SQL Mobile Blog SQL Server Everywhere Edition Community Technology | internet marketing tools

# SQL Mobile Blog SQL Server Everywhere Edition Community Technology | fix my credit

Anonymous comments are disabled
 
Page view tracker