Database Connection Strings
Connection Strings are how you tell an ADO.NET provider where to find your database,
and what options you want to include with that connection. Below are some
samples, and what they might look like for SQL Server as well.
.NET Framework Data Provider for VistaDB ADO.NET Interfaces
Usage: VistaDB.Provider
- Connection String Parts - To put multiple parts in a connection string separate
them with a ;
- Data Source='|DataDirectory|database.vdb4'
- This point to the database file you wish to load. This should be an absolute
path, or the local path is assumed.
- |DataDirectory| is a special shorthand to tell the engine you want it to try to
find the database in a local working path. This is commonly used for websites
where App_Data is the database directory. The path separator (\) after the
macro is optional in VistaDB, but required in most other databases.
- Open Mode=ModeName
- The file open mode for this connection, exclusive connections cannot use connection
pooling since only one connection may exist to an exclusive file.
- ExclusiveReadWrite - Single process read write. This is the fastest
access mode since the database does not have to worry about multi user locks.
- ExclusiveReadOnly - Single process with only read access.
- NonExclusiveReadWrite - Shared access for multiple processes. Lock
files may be generated when running in this mode. Your application should
also be prepared to handle LockTimeout and Concurrency error exceptions.
- NonExclusiveReadOnly - Database opened for read only, but other clients may
write to database.
- SharedReadOnly - Database file opened in shared mode
for read-only operations by all clients. No locking is performed.
- Pooling=[True|False]
- Turn connection pooling on or off for the given connection. Used in conjunction
with Min Pool Size and Max Pool Size.
- Min Pool Size=[Int]
- Minimum pool size to reserve. The result is that this number of connections is opened
to the database all with the same connection mode. Not compatible with exclusive
mode.
- This must be a positive number and less than Max Pool Size.
- In general you want to open 3-5 as your minimum pool size for most applications.
- Max Pool Size=[Int]
- Maximum pool size. If the number of pool entries exceeds this number any new
connections will be blocked until a connection is recycled.
- This must be a positive number and great than Min Pool Size.
- A good general number is twice the number of the Min Pool, unless you expect your
application to spin up a lot of threads.
- Password=secret
- The encryption key to the database. This is actually for encryption in VistaDB,
not user level access. Encryption has 40% or more overhead to encrypt each
packet to disk.
- Leave off connection string if it is not used. Setting it to a blank string
means a blank encryption key (encryption is on with blank key), this is not usually
the desired behavior.
- Do not quote with ' or " (spaces may not be used)
- Transaction Mode=[on|off|ignore] (vdb4 only)
- on is the default and transactions operate normally
- off means transactions are not to be attempted, creating one is an error
- ignore means that attempts to create transactions should be ignored. This
is useful for people using tools that generate transactions through SQL and are
unable to turn them off in the tool (ORMs frequently do this).
Example Connection String in Source Code
C# Code Example with path
myconnectionstring = "data source='c:\\temp\\database.vdb4';Pooling=true";
Or you can use the @ symbol at the front of a string in C# means to take the string
as a literal.
string myconnectionstring = @"data source='c:\temp\database.vdb4';Pooling=false";
|DataDirectory| is also legal in the data source path.
string myconnectionstring = @"data source='|DataDirectory|database.vdb4'";
VB Code Example with path
Dim myconnection as string
myconnection = "data source='c:\\temp\\database.vdb4'"
Direct Data Access Provider for VistaDB DDA Interface
DDA Opens a database through a function call on the DDA Obj manager. The options
are specified as parameters.
- OpenDatabase( string Filename, mode as VistaDBOpenDatabaseMode, string password)
- Filename is the path to the database to open. It can also use the |DataDirectory|
macro to mean look in the local application path or App_Data for websites.
- VistaDBOpenDatabaseMode
- ExclusiveReadWrite - Single process read write. This is the fastest
access mode since the database does not have to worry about multi user locks.
- ExclusiveReadOnly - Single process with only read access.
- NonExclusiveReadWrite - Shared access for multiple processes. Lock
files may be generated when running in this mode. Your application should
also be prepared to handle LockTimeout and Concurrency error exceptions.
- NonExclusiveReadOnly - Database opened for read only, but other clients may
write to database.
- SharedReadOnly - Database file opened in shared mode
for read-only operations by all clients. No locking is performed.
- Password - Set this to null (Nothing in VB) if there is no encryption on the database.
Do not set it to an empty string unless that is your password (yes, it will accept
string.Empty as a password although it probably should not).
SQL Server Connection String Tags (not used in VistaDB)
- Initial Catalog=
- Since there is only one database per file in VistaDB, there is no concept of an
initial catalog.
- User Id=
- All database files are fully available to VistaDB connections, there are no per
user restrictions.
- Trusted_Connection=
- All connections are trusted.
- Integrated Security=
- No concept since all users have to be logged into a machine in order to reach the
file.
- Network Library=
- There is only one managed assembly for VistaDB, libraries are not used.
- MultipleActiveResultSets=
- MARS is not supported at this time.
- AttachDbFilename=
- The filename is part of the DataSource identifier.
- Failover Partnering=
- There are no server components or mirroring in VistaDB.
- Asynchronous Processing=
- All connections are synchronous in VistaDB. Asynchronous operation is not
supported.
- Provider=
- Mostly used to specify a new client in SQL Server 2008. Not needed in VistaDB.
- Encrypt=
- Specify a password for the database and it is encrypted.
- Driver=
- Used to specify an alternate driver with SQL Server 2008. Not supported.
- TrustServerCertificate
- Workstation ID
- Persist Security Info=
- Max Buffer Size=
- Since VistaDB resides within your application namespace, there is no need for such
an option. We already have optimal usage through passing references.
- Connection Timeout=
- Since VistaDB resides within your application namespace, there is no need for such
an option.