public static string ModifyConnString(string connString) { OleDbConnectionStringBuilder oleConnBuilder = new OleDbConnectionStringBuilder(connString); SqlConnectionStringBuilder sqlConnBuilder = new SqlConnectionStringBuilder(); object tokenValue; if (oleConnBuilder.TryGetValue("Application Name", out tokenValue)) { sqlConnBuilder.ApplicationName = tokenValue.ToString(); } if (oleConnBuilder.TryGetValue("Server", out tokenValue)) { sqlConnBuilder.Add("Server", tokenValue.ToString()); } if (oleConnBuilder.TryGetValue("Database", out tokenValue)) { sqlConnBuilder.Add("Database", tokenValue.ToString()); } if (oleConnBuilder.TryGetValue("Trusted_Connection", out tokenValue)) { sqlConnBuilder.IntegratedSecurity = (string.Compare(tokenValue.ToString(), "yes", true) == 0); } if (!sqlConnBuilder.IntegratedSecurity) { sqlConnBuilder.UserID = oleConnBuilder["User Id"].ToString(); sqlConnBuilder.Password = oleConnBuilder["Password"].ToString(); } if (oleConnBuilder.TryGetValue("MARS Connection", out tokenValue)) { sqlConnBuilder.MultipleActiveResultSets = (string.Compare(tokenValue.ToString(), "true", true) == 0); } return(sqlConnBuilder.ToString()); }
public CassandraLinqDataContextBase(string nameOrConnectionString) { object contactPoints = null; object port = null; object keyspaceName = null; var match = Regex.Match( nameOrConnectionString, @"^name([\s]+)?=([\s]+)?(?<name>.*)", RegexOptions.IgnoreCase); string connectionString = (match.Success) ? ConfigurationManager.ConnectionStrings[match.Groups["name"].Value].ConnectionString : nameOrConnectionString; var builder = new OleDbConnectionStringBuilder(connectionString); builder.TryGetValue("Contact Points", out contactPoints); if (contactPoints == null) { throw new ArgumentException( "Invalid connection string. [Contact Points] must be specified.", "nameOrConnectionString"); } builder.TryGetValue("Port", out port); if (port == null) { throw new ArgumentException( "Invalid connection string. [Port] must be specified.", "nameOrConnectionString"); } builder.TryGetValue("Keyspace", out keyspaceName); if (keyspaceName == null) { throw new ArgumentException( "Invalid connection string. [Keyspace] must be specified.", "nameOrConnectionString"); } var cluster = Cluster.Builder() .WithConnectionString(String.Format("Contact Points={0};Port={1};", contactPoints, port)) .Build(); _session = cluster.Connect(keyspaceName.ToString()); _batch = _session.CreateBatch(); }
static private void DisplayValue(OleDbConnectionStringBuilder builder, string key) { object value = null; // Although TryGetValue handles missing keys, // it does not handle passing in a null (Nothing in Visual Basic) // key. This example traps for that particular error, but // throws any other unknown exceptions back out to the // caller. try { if (builder.TryGetValue(key, out value)) { Console.WriteLine("{0}='{1}'", key, value); } else { Console.WriteLine("Unable to retrieve value for '{0}'", key); } } catch (ArgumentNullException) { Console.WriteLine("Unable to retrieve value for null key."); } }
protected override void SetConnectionString(string value) { FConnectionString = value; OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder(value); tbDatabase.Text = builder.DataSource; object userName; builder.TryGetValue(MsAccessDataConnection.strUserID, out userName); tbUserName.Text = userName == null ? "" : userName.ToString(); object password; builder.TryGetValue(MsAccessDataConnection.strPassword, out password); tbPassword.Text = password == null ? "" : password.ToString(); }
internal string GetConnectionStringProperty(string property) { OleDbConnectionStringBuilder sb = new OleDbConnectionStringBuilder(this.ConnectionString); object value = null; if (!sb.TryGetValue(property, out value)) { throw new Exception($"The property: '{property}' was not found while searching the connection string in the configuration: '{this.ConfigurationName}'"); } return(value.ToString()); }
public IEnumerable <string> GetTables(string connectionName, string connectionString) { IList <String> tables = new List <String>(); String cmdStr = String.Format("SELECT TABLE FROM DITABLE WHERE UPPER(ClassName) NOT LIKE 'V%' AND UPPER(IndxDbf) LIKE '{0}%' ORDER BY TABLE", connectionName.Equals(Constants.ConnectionNames.Host, StringComparison.InvariantCultureIgnoreCase) ? 'I' : 'P'); DataTable dt = Helper.GetOleDbDataTable(HostConnectionString, cmdStr); OleDbConnectionStringBuilder bldr = new OleDbConnectionStringBuilder(connectionString); Object obj = null; bldr.TryGetValue("Data Source", out obj); if (obj == null) { throw new ApplicationException("No Data Source for connection name " + connectionName); } String directoryName = obj.ToString(); if (!Directory.Exists(directoryName)) { throw new ApplicationException("Data Source does not exist for connection name " + connectionName); } // TODO Ensure connectionString has DELETED=False foreach (DataRow row in dt.Rows) { String tableName = row[0].ToString().Trim(); if ((TableNameFilter != null) && (!TableNameFilter(connectionName, tableName))) { continue; } String fileName = Path.Combine(directoryName, tableName + ".DBF"); if (File.Exists(fileName)) { tables.Add(tableName); } } return(tables); }
private void ParseTSqlStatement(string statement, int connectionID, int reportID) { SqlStatement toBeParsed = new SqlStatement(); String existingDBName = String.Empty; object existing; String connectionString = repository.RetrieveConnectionString(connectionID); OleDbConnectionStringBuilder csBuilder = (OleDbConnectionStringBuilder)repository.GetConnectionStringBuilder(connectionString); if (csBuilder != null) { if (csBuilder.TryGetValue(Repository.ConnectionStringProperties.InitialCatalog, out existing)) { existingDBName = (String)existing; } else if (csBuilder.TryGetValue(Repository.ConnectionStringProperties.Database, out existing)) { existingDBName = (String)existing; } } else { csBuilder = (OleDbConnectionStringBuilder)repository.GetConnectionStringBuilder(String.Empty); } try { toBeParsed.quotedIdentifiers = true; if (toBeParsed.ParseString(statement)) { foreach (string tableName in toBeParsed.getTableNames(true)) { int tableID = -1; string[] tableParts = tableName.Split('.'); switch (tableParts.Length) { case 3: String dbName = tableParts[0].Replace("[", "").Replace("]", ""); if (csBuilder.ContainsKey(Repository.ConnectionStringProperties.InitialCatalog)) { csBuilder.Remove(Repository.ConnectionStringProperties.InitialCatalog); csBuilder.Add(Repository.ConnectionStringProperties.InitialCatalog, dbName); connectionString = csBuilder.ConnectionString; } else if (csBuilder.ContainsKey(Repository.ConnectionStringProperties.Database)) { csBuilder.Remove(Repository.ConnectionStringProperties.Database); csBuilder.Add(Repository.ConnectionStringProperties.Database, dbName); connectionString = csBuilder.ConnectionString; } int objectConnectionId = repository.GetConnection(connectionString); if (objectConnectionId == -1) { // Need to add a new connectionID. objectConnectionId = repository.AddObject("CMD " + dbName, string.Empty, Repository.OLEDBGuid, repository.RootRepositoryObjectID); repository.AddAttribute(objectConnectionId, Repository.Attributes.ConnectionString, connectionString); repository.AddAttribute(objectConnectionId, Repository.Attributes.ConnectionServer, csBuilder.DataSource); repository.AddAttribute(objectConnectionId, Repository.Attributes.ConnectionDatabase, dbName); } if (threePartNames) { tableID = repository.GetTable(objectConnectionId, String.Format("{0}.{1}.{2}", tableParts[0], tableParts[1], tableParts[2])); } else { tableID = repository.GetTable(objectConnectionId, String.Format("{0}.{1}", tableParts[1], tableParts[2])); } break; default: if (threePartNames) { tableID = repository.GetTable(connectionID, String.Format("[{0}].{1}", existingDBName, tableName)); } else { tableID = repository.GetTable(connectionID, tableName); } break; } if (!repository.DoesMappingExist(tableID, reportID)) { repository.AddMapping(tableID, reportID); } } foreach (string procedureName in toBeParsed.getProcedureNames(true)) { int procID = -1; string[] procedureParts = procedureName.Split('.'); switch (procedureParts.Length) { case 3: String dbName = procedureParts[0].Replace("[", "").Replace("]", ""); if (csBuilder.ContainsKey(Repository.ConnectionStringProperties.InitialCatalog)) { csBuilder.Remove(Repository.ConnectionStringProperties.InitialCatalog); csBuilder.Add(Repository.ConnectionStringProperties.InitialCatalog, dbName); connectionString = csBuilder.ConnectionString; } else if (csBuilder.ContainsKey(Repository.ConnectionStringProperties.Database)) { csBuilder.Remove(Repository.ConnectionStringProperties.Database); csBuilder.Add(Repository.ConnectionStringProperties.Database, dbName); connectionString = csBuilder.ConnectionString; } int objectConnectionId = repository.GetConnection(connectionString); if (objectConnectionId == -1) { // Need to add a new connectionID. objectConnectionId = repository.AddObject("CMD " + dbName, string.Empty, Repository.OLEDBGuid, repository.RootRepositoryObjectID); repository.AddAttribute(objectConnectionId, Repository.Attributes.ConnectionString, connectionString); repository.AddAttribute(objectConnectionId, Repository.Attributes.ConnectionServer, csBuilder.DataSource); repository.AddAttribute(objectConnectionId, Repository.Attributes.ConnectionDatabase, dbName); } if (threePartNames) { procID = repository.GetProcedure(objectConnectionId, String.Format("{0}.{1}.{2}", procedureParts[0], procedureParts[1], procedureParts[2])); } else { procID = repository.GetProcedure(objectConnectionId, String.Format("{0}.{1}", procedureParts[1], procedureParts[2])); } break; default: if (threePartNames) { procID = repository.GetProcedure(connectionID, String.Format("[{0}].{1}", existingDBName, procedureName)); } else { procID = repository.GetProcedure(connectionID, procedureName); } break; } if (!repository.DoesMappingExist(procID, reportID)) { repository.AddMapping(procID, reportID); } } foreach (string funcName in toBeParsed.getFunctionNames(true)) { int funcID = -1; string[] functionParts = funcName.Split('.'); switch (functionParts.Length) { case 3: String dbName = functionParts[0].Replace("[", "").Replace("]", ""); if (csBuilder.ContainsKey(Repository.ConnectionStringProperties.InitialCatalog)) { csBuilder.Remove(Repository.ConnectionStringProperties.InitialCatalog); csBuilder.Add(Repository.ConnectionStringProperties.InitialCatalog, dbName); connectionString = csBuilder.ConnectionString; } else if (csBuilder.ContainsKey(Repository.ConnectionStringProperties.Database)) { csBuilder.Remove(Repository.ConnectionStringProperties.Database); csBuilder.Add(Repository.ConnectionStringProperties.Database, dbName); connectionString = csBuilder.ConnectionString; } int objectConnectionId = repository.GetConnection(connectionString); if (objectConnectionId == -1) { // Need to add a new connectionID. objectConnectionId = repository.AddObject("CMD " + dbName, string.Empty, Repository.OLEDBGuid, repository.RootRepositoryObjectID); repository.AddAttribute(objectConnectionId, Repository.Attributes.ConnectionString, connectionString); repository.AddAttribute(objectConnectionId, Repository.Attributes.ConnectionServer, csBuilder.DataSource); repository.AddAttribute(objectConnectionId, Repository.Attributes.ConnectionDatabase, dbName); } if (threePartNames) { funcID = repository.GetFunction(objectConnectionId, String.Format("{0}.{1}.{2}", functionParts[0], functionParts[1], functionParts[2])); } else { funcID = repository.GetFunction(objectConnectionId, String.Format("{0}.{1}", functionParts[1], functionParts[2])); } break; default: if (threePartNames) { funcID = repository.GetFunction(connectionID, String.Format("[{0}].{1}", existingDBName, funcName)); } else { funcID = repository.GetFunction(connectionID, funcName); } break; } if (!repository.DoesMappingExist(funcID, reportID)) { repository.AddMapping(funcID, reportID); } } } else { string errorMessage = "The following messages where generated whilst parsing the sql statement\r\n" + statement + "\r\n"; foreach (string error in toBeParsed.parseErrors) { errorMessage += error + "\r\n"; } Console.WriteLine(errorMessage); } } catch (Exception ex) { Console.WriteLine(string.Format("SQL Statement Failed with Exception {0}\r\nStatement Was:{1}\r\nPlease report to SSISMeta.codeplex.com\r\n", ex.Message, statement)); } }