mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-16 09:35:36 -05:00
Added support for most sql connection string properties
This commit is contained in:
@@ -353,10 +353,123 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection
|
||||
connectionBuilder["Integrated Security"] = false;
|
||||
connectionBuilder["User Id"] = connectionDetails.UserName;
|
||||
connectionBuilder["Password"] = connectionDetails.Password;
|
||||
if( !String.IsNullOrEmpty(connectionDetails.DatabaseName) )
|
||||
|
||||
// Check for any optional parameters
|
||||
if (!String.IsNullOrEmpty(connectionDetails.DatabaseName))
|
||||
{
|
||||
connectionBuilder["Initial Catalog"] = connectionDetails.DatabaseName;
|
||||
}
|
||||
if (!String.IsNullOrEmpty(connectionDetails.AuthenticationType))
|
||||
{
|
||||
switch(connectionDetails.AuthenticationType)
|
||||
{
|
||||
case "Integrated":
|
||||
connectionBuilder.IntegratedSecurity = true;
|
||||
break;
|
||||
case "SqlLogin":
|
||||
connectionBuilder.IntegratedSecurity = false;
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException("Invalid value \"" + connectionDetails.AuthenticationType + "\" for AuthenticationType. Valid values are \"Integrated\" and \"SqlLogin\".");
|
||||
}
|
||||
}
|
||||
if (connectionDetails.Encrypt.HasValue)
|
||||
{
|
||||
connectionBuilder.Encrypt = connectionDetails.Encrypt.Value;
|
||||
}
|
||||
if (connectionDetails.TrustServerCertificate.HasValue)
|
||||
{
|
||||
connectionBuilder.TrustServerCertificate = connectionDetails.TrustServerCertificate.Value;
|
||||
}
|
||||
if (connectionDetails.PersistSecurityInfo.HasValue)
|
||||
{
|
||||
connectionBuilder.PersistSecurityInfo = connectionDetails.PersistSecurityInfo.Value;
|
||||
}
|
||||
if (connectionDetails.ConnectTimeout.HasValue)
|
||||
{
|
||||
connectionBuilder.ConnectTimeout = connectionDetails.ConnectTimeout.Value;
|
||||
}
|
||||
if (connectionDetails.ConnectRetryCount.HasValue)
|
||||
{
|
||||
connectionBuilder.ConnectRetryCount = connectionDetails.ConnectRetryCount.Value;
|
||||
}
|
||||
if (connectionDetails.ConnectRetryInterval.HasValue)
|
||||
{
|
||||
connectionBuilder.ConnectRetryInterval = connectionDetails.ConnectRetryInterval.Value;
|
||||
}
|
||||
if (!String.IsNullOrEmpty(connectionDetails.ApplicationName))
|
||||
{
|
||||
connectionBuilder.ApplicationName = connectionDetails.ApplicationName;
|
||||
}
|
||||
if (!String.IsNullOrEmpty(connectionDetails.WorkstationId))
|
||||
{
|
||||
connectionBuilder.WorkstationID = connectionDetails.WorkstationId;
|
||||
}
|
||||
if (!String.IsNullOrEmpty(connectionDetails.ApplicationIntent))
|
||||
{
|
||||
ApplicationIntent intent;
|
||||
switch (connectionDetails.ApplicationIntent)
|
||||
{
|
||||
case "ReadOnly":
|
||||
intent = ApplicationIntent.ReadOnly;
|
||||
break;
|
||||
case "ReadWrite":
|
||||
intent = ApplicationIntent.ReadWrite;
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException("Invalid value \"" + connectionDetails.ApplicationIntent + "\" for ApplicationIntent. Valid values are \"ReadWrite\" and \"ReadOnly\".");
|
||||
}
|
||||
connectionBuilder.ApplicationIntent = intent;
|
||||
}
|
||||
if (!String.IsNullOrEmpty(connectionDetails.CurrentLanguage))
|
||||
{
|
||||
connectionBuilder.CurrentLanguage = connectionDetails.CurrentLanguage;
|
||||
}
|
||||
if (connectionDetails.Pooling.HasValue)
|
||||
{
|
||||
connectionBuilder.Pooling = connectionDetails.Pooling.Value;
|
||||
}
|
||||
if (connectionDetails.MaxPoolSize.HasValue)
|
||||
{
|
||||
connectionBuilder.MaxPoolSize = connectionDetails.MaxPoolSize.Value;
|
||||
}
|
||||
if (connectionDetails.MinPoolSize.HasValue)
|
||||
{
|
||||
connectionBuilder.MinPoolSize = connectionDetails.MinPoolSize.Value;
|
||||
}
|
||||
if (connectionDetails.LoadBalanceTimeout.HasValue)
|
||||
{
|
||||
connectionBuilder.LoadBalanceTimeout = connectionDetails.LoadBalanceTimeout.Value;
|
||||
}
|
||||
if (connectionDetails.Replication.HasValue)
|
||||
{
|
||||
connectionBuilder.Replication = connectionDetails.Replication.Value;
|
||||
}
|
||||
if (!String.IsNullOrEmpty(connectionDetails.AttachDbFilename))
|
||||
{
|
||||
connectionBuilder.AttachDBFilename = connectionDetails.AttachDbFilename;
|
||||
}
|
||||
if (!String.IsNullOrEmpty(connectionDetails.FailoverPartner))
|
||||
{
|
||||
connectionBuilder.FailoverPartner = connectionDetails.FailoverPartner;
|
||||
}
|
||||
if (connectionDetails.MultiSubnetFailover.HasValue)
|
||||
{
|
||||
connectionBuilder.MultiSubnetFailover = connectionDetails.MultiSubnetFailover.Value;
|
||||
}
|
||||
if (connectionDetails.MultipleActiveResultSets.HasValue)
|
||||
{
|
||||
connectionBuilder.MultipleActiveResultSets = connectionDetails.MultipleActiveResultSets.Value;
|
||||
}
|
||||
if (connectionDetails.PacketSize.HasValue)
|
||||
{
|
||||
connectionBuilder.PacketSize = connectionDetails.PacketSize.Value;
|
||||
}
|
||||
if (!String.IsNullOrEmpty(connectionDetails.TypeSystemVersion))
|
||||
{
|
||||
connectionBuilder.TypeSystemVersion = connectionDetails.TypeSystemVersion;
|
||||
}
|
||||
|
||||
return connectionBuilder.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user