The Microsoft SQL Server and Microsoft SQL Server (SQLClient) providers connect to a Microsoft SQL Server and Azure SQL Database instance.
The Microsoft SQL Server is based on the System.Data.OleDB
client library whereas the Microsoft SQL Server (SQLClient) is based on the System.Data.SqlClient
library. Other than the underlying libraries they are functionally equivalent.
SELECT
, INSERT
, UPDATE
and DELETE
SQL Statements are automatically calculated from the Data Schema. Only those columns in the Schema Map are affected the Key(s) columns define the WHERE
condition for UPDATE
and DELETE
.
In Incremental Mode the IN
clause is used to return matching records based on the Key selection in groups of 500 across multiple CPU threads. It is advised that the Key column is an Indexed SQL Column.
The Network name of your SQL Server, can also be a SQL Instance i.e. SQL01\SQLEXPRESS
SqlClient supports names in the format tcp:SQL01\SQLEXPRESS, 1433
specifying the TCP protocol and port.
Applies to OleDB only and specifies the Network Library to connect to your SQL Server typically TCP/IP
or Named Pipes
.
Use either the current process credentials or specify a SQL Server Username and Password.
SQL Azure requires that the username includes the server name as a postfix i.e. username@servername
To complete the connection you must select a DATABASE
on the Server and a SQL Object to connect to either a TABLE
or VIEW
Data Sync will provide a Tree View of your SQL Server Databases, Tables and Views.
You can optionally enter a SQL Query via the SQL
tab to select the data you want to work with. Specifying a SQL Query will make the data source read-only
since Data Sync cannot work out how to update the data source from a user defined query.
The SQL Command timeout in seconds.
The SQL Connection String that connects to your database.
The TABLE
or VIEW
that the Data source is connected to.
A user defined SQL Query to use instead of SourceTable setting this property overrides SourceTable and makes the Data source read-only.
Data Sync wraps your command text so it appears as an inner query SELECT * FROM (<SQL_QUERY>) T1
to support schema discovery and CommandOrderBy property.
To call a Stored Procedure use the EXEC
keyword i.e. EXEC spGetAllUsers
. The EXEC keyword tells Data Sync to treat this query as a Stored Procedure.
Appends an ORDER BY
clause to the Query.
Appends an WHERE
clause to the Query, only when using SourceTable if you have a user defined Query in Command this value is ignored.
Specifies the number of commands to send to SQL Server in one SQL statement. SQL Server supports a maximum number of parameters of 2000 so this value must be less than COLUMNS*BATCH
.
Specifies the number of commands per SQL Transaction.
Transaction > 0 will create a new Transaction on the connection.
Defines a column that is a Binary data column where Data Sync uses a separate channel to SELECT and UPDATE this value. This prevents loading these large blob values on the read operation.
This is used with providers that support File based synchronisation operations such as
Defines a column that returns the name of the Blob i.e. FileName when used with SharePoint.
The SQL Server provider also exposes helper functions that can be called from Project Automation to update the Data source ExecuteScalar
, ExecuteNonQuery
and UpdateSourceRow
.
Caution: Using these methods on the Target connection with a Transaction > 0 will cause a DeadLock since a SQL Transaction is in place.
Method ExecuteScalar creates a SQL Command from the supplied SQL and Parameters values and calls ExecuteScalar against the database.
int ExecuteScalar(string sql, params object[] parameters)
Method ExecuteNonQuery creates a SQL Command from the supplied SQL and Parameters values and calls ExecuteNonQuery against the database.
int ExecuteNonQuery(string sql, params object[] parameters)
Method UpdateSourceRow creates a SQL Command to update a single column in the Data source using the key from the DataCompareItem
bool UpdateSourceRow(string column, object value, DataCompareItemInvariant item)
Used to update the source row from project automation, for example setting a Sync flag once a record has been synchronised.
For example calling this method in the AfterUpdateItem
item event to mark a record in the source as synchronised.
public override void AfterUpdateItem(object sender, DataCompareItemInvariant item, object identity)
{
DataSourceA.UpdateSourceRow("Sync", true, item);
}
If you get the error The certificate chain was issued by an authority that is not trusted when you are trying to connect, then you need to ensure that you select the Trusted checkbox in the connection window.