public DataSession(IDatabaseEngine database) : this(database, new CommandFactory(database), new AutoCommitExecutionState(database.GetConnection(), database.GetDataAdapter()), new TransactionalExecutionState(database.GetConnection(), database.GetDataAdapter())) { }
public void CreateChunkTable() { DropChunkTable(); var query = File.ReadAllText(Path.Combine(_folder, "CreateChunkTable.sql")); query = query.Replace("{sc}", _schemaName); using (var connection = _dbEngine.GetConnection(_connectionString)) using (var cmd = _dbEngine.GetCommand(query, connection)) { cmd.ExecuteNonQuery(); } }
public void ValidateConnection() { using (IDbConnection connection = _database.GetConnection()) { connection.Open(); } }
public void CreateDatabase(string query) { var sqlConnectionStringBuilder = new OdbcConnectionStringBuilder(_connectionString); var database = sqlConnectionStringBuilder["database"]; // TMP var mySql = _connectionString.ToLower().Contains("mysql"); if (_connectionString.ToLower().Contains("mysql")) { sqlConnectionStringBuilder["database"] = "mysql"; } else if (_connectionString.ToLower().Contains("postgres")) { sqlConnectionStringBuilder["database"] = "postgres"; } else if (_connectionString.ToLower().Contains("amazon redshift")) { sqlConnectionStringBuilder["database"] = "poc"; } else { sqlConnectionStringBuilder["database"] = "master"; } //using (var connection = SqlConnectionHelper.OpenOdbcConnection(sqlConnectionStringBuilder.ConnectionString)) using (var connection = _engine.GetConnection(sqlConnectionStringBuilder.ConnectionString)) { query = string.Format(query, database); foreach (var subQuery in query.Split(new[] { "\r\nGO", "\nGO" }, StringSplitOptions.None)) { //using (var command = new OdbcCommand(subQuery, connection)) using (var command = _engine.GetCommand(subQuery, connection)) { command.CommandTimeout = 30000; command.ExecuteNonQuery(); } } } }
//public KeyValuePair<string, Exception> Load(IDatabaseEngine sourceEngine, string sourceSchemaName, List<QueryDefinition> sourceQueryDefinitions, OdbcConnection sourceConnection, string vendor) public KeyValuePair <string, Exception> Load(IDatabaseEngine sourceEngine, string sourceSchemaName, List <QueryDefinition> sourceQueryDefinitions, string sourceConnectionString, string vendor) { using var sourceConnection = sourceEngine.GetConnection(sourceConnectionString); var fileName = string.Empty; var query = string.Empty; var connectionString = string.Empty; try { var timer = new Stopwatch(); timer.Start(); foreach (var qd in sourceQueryDefinitions) { if (qd.Providers != null) { continue; } if (qd.Locations != null) { continue; } if (qd.CareSites != null) { continue; } fileName = qd.FileName; var sql = GetSqlHelper.GetSql(sourceEngine.Database, qd.GetSql(vendor, sourceSchemaName), sourceSchemaName); if (string.IsNullOrEmpty(sql)) { continue; } var q = string.Format(sql, ChunkId); using (var cdm = sourceEngine.GetCommand(q, sourceConnection)) { cdm.CommandTimeout = 30000; using (var reader = sourceEngine.ReadChunkData(sourceConnection, cdm, qd, ChunkId, Prefix)) { while (reader.Read()) { PopulateData(qd, reader); } } } } timer.Stop(); } catch (Exception e) { var info = new StringBuilder(); info.AppendLine("SourceEngine=" + sourceEngine); info.AppendLine("SourceConnectionString=" + connectionString); info.AppendLine("File name=" + fileName); info.AppendLine("Query:"); info.AppendLine(query); return(new KeyValuePair <string, Exception>(info.ToString(), e)); } return(new KeyValuePair <string, Exception>(null, null)); }