Connection strings for SQL Server Compact

SQL Server Compact targets occasionally connected applications and applications with an embedded database. It is free to download and redistribute. It lacks support for stored procedures and batch SQL statements, ie 'SELECT 1; SELECT 2;'. It's naming is confused with SQL Server CE, SQL Server Compact Edition, SQL Server 2005 Compact Edition, SQL Server for Windows CE, SQL Server Mobile Edition and SQL Server Everywhere Edition which all are SQL Server Compact acronyms. SQL Server Compact is a product separate from the normal SQL Server product versions such as 2005, 2008, 2012 and is not to be seen as an edition of those.

.NET Compact Framework Data Provider for SQL Server Mobile

Type .NET Framework Class Library
Usage System.Data.SqlServerCe.SqlCeConnection
Manufacturer Microsoft

Standard

Data Source=MyData.sdf;Persist Security Info=False;
 
 

How to specify the location of the SDF file

Often times the .SDF database is not running in the current directory so it becomes necessary to programatically set the path to the SDF file. This is an example (.net C#) on how to do this when the SDF file is located in the same directory as the executing application.


Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\MyData.sdf;Persist Security Info=False;
 
 

Standard

Data Source=MyData.sdf;Persist Security Info=False;
 
 

Specifying the maximum database size

The maximum size of the database is by default 128 MB. Override this by using the following connection string.

Data Source=MyData.sdf;Max Database Size=256;Persist Security Info=False;
 
 

Specifying the maximum buffer size

The largest amount of memory that can be in use before the server starts flushing changes to disk is by default 640 kB. Override this by using the following connection string.

Data Source=MyData.sdf;Max Buffer Size=1024;Persist Security Info=False;
 
 

Encryption enabled

Use this connection string to enable encryption on the database.

Data Source=MyData.sdf;Encrypt Database=True;Password=myPassword;File Mode=shared read;
Persist Security Info=False;

The Encrypt Database="True" pair is really not necessary as the presence of the Password-parameter itself turns on encryption for the connection.

 
 

Exclusive access

Use this one to disallow other processes from opening or modifying the database while you have it open.

Data Source=MyData.sdf;File Mode=Exclusive;Persist Security Info=False;
 
 

Read only access

Use this one to open a read-only copy of the database.

Data Source=MyData.sdf;File Mode=Read Only;Persist Security Info=False;
 
 

Exclusive but shared for reading

Use this one to allow other processes to read, but not modify, the database while you have it open.

Data Source=MyData.sdf;File Mode=Shared Read;Persist Security Info=False;
 
 

Specifying the maximum temp file size

The maximum size of the temporary database file is by default 128 MB. Override this by using the following connection string.

Data Source=MyData.sdf;Temp File Max Size=256;Persist Security Info=False;
 
 

Case sensitive database

Upon database creation the default is case insensitive, use this one for a case sensitive database.

Data Source=MyData.sdf;Case Sensitive=True;Persist Security Info=False;

This allows you to have multiple values, wich only deffer in lower / upper case, in a unique column.

This setting is a database creation time option and is ignored when connecting to an existing database.

 
 

Microsoft.SQLSERVER.CE.OLEDB.3.5

Type OLE DB Provider
Usage Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5
Manufacturer Microsoft

Standard

Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=myPath\myData.sdf;
 
 

Microsoft.SQLSERVER.MOBILE.OLEDB.3.0

Type OLE DB Provider
Usage Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0
Manufacturer Microsoft

Standard

Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;Data Source=myPath\myData.sdf;
 
 

How to specify the location of the SDF file

Often times the .SDF database is not running in the current directory so it becomes necessary to programatically set the path to the SDF file. This is an example (.net C#) on how to do this when the SDF file is located in the same directory as the executing application.

Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;
Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\MyData.sdf;
 
 

Specifying the maximum database size

The maximum size of the database is by default 128 MB. Override this by using the following connection string.

Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;Data Source=myPath\myData.sdf;
SSCE:Max Database Size=256;
 
 

Specifying the maximum buffer size

The largest amount of memory that can be in use before the server starts flushing changes to disk is by default 640 kB. Override this by using the following connection string.

Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;Data Source=myPath\myData.sdf;
SSCE:Max Buffer Size=1024;
 
 

Encryption enabled

Use this connection string to enable encryption on the database.

Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;Data Source=myPath\myData.sdf;
SSCE:Encrypt Database=True;
 
 

Specifying the maximum temp file size

The maximum size of the temporary database file is by default 128 MB. Override this by using the following connection string.

Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;Data Source=myPath\myData.sdf;
SSCE:Temp File Max Size=256;
 
 

Specifying location of temp file

Set the directory for the temp file location using this connection string.

Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;Data Source=myPath\myData.sdf;
SSCE:Temp File Directory="\myTempDir\";
 
 

Supplying the database password

Use this connection string to provide the database password when opening the connection.

Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0;Data Source=myPath\myData.sdf;
SSCE:Database Password='myPassword';
 
 

.NET Framework Data Provider for OLE DB

Type .NET Framework Wrapper Class Library
Usage System.Data.OleDb.OleDbConnection
Manufacturer Microsoft

Use an OLE DB provider from .NET

Provider=any oledb provider's name;OledbKey1=someValue;OledbKey2=someValue;

See the respective OLEDB provider's connection strings options. The .net OleDbConnection will just pass on the connection string to the specified OLEDB provider. Read more here.

 
 

Popular