// Create an input source of given type and location // The locator argument is a path or connection string. The actual filename or table name comes later. public static DataSourceStream Create(string source, string locator) { switch (source) { case "con": return(DataSourceCon.Create(locator)); case "txt": return(DataSourceFile.Create(locator)); case "csv": return(DataSourceCsv.Create(locator)); case "sql": return(DataSourceSql.Create(locator)); case "oledb": return(DataSourceOleDb.Create(locator)); case "odbc": return(DataSourceOdbc.Create(locator)); default: Logger.Assert(false, source); break; } return(null); }
// Factory method public static DataSourceOdbc Create(string locator) { var ds = new DataSourceOdbc { _locator = locator, }; try { ds._connection = new OdbcConnection(locator); } catch (Exception ex) { throw ProgramError.Fatal("Source Odbc", ex.Message); } ds._convdict = new Dictionary <string, ConversionTypes> { { "CHAR", ConversionTypes.String }, { "VARCHAR", ConversionTypes.String }, { "NCHAR", ConversionTypes.String }, { "NVARCHAR", ConversionTypes.String }, { "INTEGER", ConversionTypes.Int }, }; return(ds); }