/// <summary> /// Initializes a new Database Writer object using a TabMonConfig. /// </summary> /// <param name="config">User's TabMon.config file containing the required Db Writer parameters.</param> /// <returns>Initialized DataTableDbWriter object.</returns> private static DataTableDbWriter LoadDbWriterFromConfig(TabMonConfig config) { DbDriverType dbDriverType; Log.Debug("Loading database configuration.."); var databaseConfig = config.Database; var validDriverType = Enum.TryParse(databaseConfig.Type, true, out dbDriverType); if (!validDriverType) { throw new ConfigurationErrorsException("Invalid database driver type specified!"); } IDbConnectionInfo dbConnInfo = new DbConnectionInfo() { Server = databaseConfig.Server.Host, Port = databaseConfig.Server.Port, Username = databaseConfig.User.Login, Password = databaseConfig.User.Password, DatabaseName = databaseConfig.Name }; var indexes = new Dictionary <string, bool>(); foreach (Index index in config.Database.Indexes) { indexes.Add(index.Column, index.Clustered); } if (!dbConnInfo.Valid()) { throw new ConfigurationErrorsException("Missing required database connection information!"); } var tableInitializationOptions = new DbTableInitializationOptions() { CreateTableDynamically = true, UpdateDbTableToMatchSchema = true, UpdateSchemaToMatchDbTable = true, UpdateIndexes = databaseConfig.Indexes.Generate, IndexesToGenerate = indexes, PurgeData = databaseConfig.PurgeOldData.Enabled, PurgeDataThreshold = databaseConfig.PurgeOldData.ThresholdDays }; Log.Info("Connecting to results database.."); try { return(new DataTableDbWriter(dbDriverType, dbConnInfo, tableInitializationOptions)); } catch (Exception ex) { Log.Fatal("Could not initialize writer: " + ex.Message); return(null); } }
public DataTableDbWriter(DbDriverType driverType, IDbConnectionInfo connectionInfo, DbTableInitializationOptions tableInitializationOptions = default(DbTableInitializationOptions)) { Adapter = new DbAdapter(driverType, connectionInfo); this.tableInitializationOptions = tableInitializationOptions; }
public DataTableDbWriter(DbDriverType driverType, IDbConnectionInfo connectionInfo, DbTableInitializationOptions tableInitializationOptions = default(DbTableInitializationOptions)) { Adapter = new DbAdapter(driverType, connectionInfo); this.tableInitializationOptions = tableInitializationOptions; }