コード例 #1
0
        public static TableDefinition GetDefinitionFromTableName(string tableName, IConnectionManager connection)
        {
            IfTableOrViewExistsTask.ThrowExceptionIfNotExists(connection, tableName);
            ConnectionManagerType connectionType = ConnectionManagerSpecifics.GetType(connection);

            if (connectionType == ConnectionManagerType.SqlServer)
            {
                return(ReadTableDefinitionFromSqlServer(tableName, connection));
            }
            else if (connectionType == ConnectionManagerType.SQLite)
            {
                return(ReadTableDefinitionFromSQLite(tableName, connection));
            }
            else if (connectionType == ConnectionManagerType.MySql)
            {
                return(ReadTableDefinitionFromMySqlServer(tableName, connection));
            }
            else if (connectionType == ConnectionManagerType.Postgres)
            {
                return(ReadTableDefinitionFromPostgres(tableName, connection));
            }
            else
            {
                throw new ETLBoxException("Unknown connection type - please pass a valid TableDefinition!");
            }
        }
コード例 #2
0
ファイル: TableDefinition.cs プロジェクト: HaSaM-cz/etlbox
        private static void GetColumns(IConnectionManager connectionManager, string name, List <TableColumn> columns)
        {
            ValidateName(name);
            IfTableOrViewExistsTask.ThrowExceptionIfNotExists(connectionManager, name);
            ConnectionManagerType connectionType = ConnectionManagerSpecifics.GetType(connectionManager);
            ObjectNameDescriptor  TN             = new ObjectNameDescriptor(name, connectionType);

            if (connectionType == ConnectionManagerType.SqlServer)
            {
                GetColumnsFromSqlServer(connectionManager, TN, columns);
            }
            else if (connectionType == ConnectionManagerType.SQLite)
            {
                GetColumnsFromSQLite(connectionManager, TN, columns);
            }
            else if (connectionType == ConnectionManagerType.MySql)
            {
                GetColumnsFromMySqlServer(connectionManager, TN, columns);
            }
            else if (connectionType == ConnectionManagerType.Postgres)
            {
                GetColumnsFromPostgres(connectionManager, TN, columns);
            }
            else if (connectionType == ConnectionManagerType.Access)
            {
                GetColumnsFromAccess(connectionManager, TN, columns);
            }
            else
            {
                throw new ETLBoxException("Unknown connection type - please pass a valid TableDefinition!");
            }
        }
コード例 #3
0
        /// <summary>
        /// Gather a table definition from an existing table in the database.
        /// </summary>
        /// <param name="connectionManager">The connection manager of the database you want to connect</param>
        /// <param name="tableName">A name of an existing table in the database</param>
        /// <returns></returns>
        public static TableDefinition FromTableName(IConnectionManager connection, string tableName)
        {
            IfTableOrViewExistsTask.ThrowExceptionIfNotExists(connection, tableName);
            ConnectionManagerType connectionType = connection.ConnectionManagerType;
            ObjectNameDescriptor  TN             = new ObjectNameDescriptor(tableName, connection.QB, connection.QE);

            if (connectionType == ConnectionManagerType.SqlServer)
            {
                return(ReadTableDefinitionFromSqlServer(connection, TN));
            }
            else if (connectionType == ConnectionManagerType.SQLite)
            {
                return(ReadTableDefinitionFromSQLite(connection, TN));
            }
            else if (connectionType == ConnectionManagerType.MySql)
            {
                return(ReadTableDefinitionFromMySqlServer(connection, TN));
            }
            else if (connectionType == ConnectionManagerType.Postgres)
            {
                return(ReadTableDefinitionFromPostgres(connection, TN));
            }
            else if (connectionType == ConnectionManagerType.Access)
            {
                return(ReadTableDefinitionFromAccess(connection, TN));
            }
            else if (connectionType == ConnectionManagerType.Oracle)
            {
                return(ReadTableDefinitionFromOracle(connection, TN));
            }
            else
            {
                throw new ETLBoxException("Unknown connection type - please pass a valid TableDefinition!");
            }
        }
コード例 #4
0
 public void ThrowException(IConnectionManager connection)
 {
     //Arrange
     //Act
     //Assert
     Assert.Throws <ETLBoxException>(
         () =>
     {
         IfTableOrViewExistsTask.ThrowExceptionIfNotExists(connection, "xyz.Somestrangenamehere");
     });
 }