Esempio n. 1
0
        public override IEnumerable <ITableSourceInfo> ListTableSources(IDatabaseInfo database, IsTableSourceToIgnore isTableSourceToIgnore)
        {
            IList <ITableSourceInfo> tables       = new List <ITableSourceInfo>();
            iDB2DatabaseInfo         databaseInfo = database as iDB2DatabaseInfo;

            if (databaseInfo == null)
            {
                return(null);
            }
            using (IDbConnection conn = DatabaseServices.TransactionService.CreateConnection()) {
                string sql = "SELECT TABLE_NAME "
                             + "FROM QSYS2.SYSTABLES "
                             + "WHERE SYSTEM_TABLE = 'N' and SYSTEM_TABLE_SCHEMA = '" + database.Identifier + "'";

                IDbCommand cmd = DatabaseServices.ExecutionService.CreateCommand(conn, sql);
                cmd.CommandTimeout = QueryTimeout;
                using (IDataReader reader = cmd.ExecuteReader()) {
                    while (reader.Read())
                    {
                        string tableName = (string)reader["TABLE_NAME"];
                        if (!isTableSourceToIgnore(tableName) && DoesNotContainProblematicChars(tableName))
                        {
                            string qualifiedTableName = GetQualifiedIdentifier(databaseInfo.Database, tableName);
                            tables.Add(new iDB2TableSourceInfo(DatabaseServices, databaseInfo, tableName, qualifiedTableName));
                        }
                    }
                }
            }
            return(tables);
        }
Esempio n. 2
0
        private bool DatabaseExists(IDbConnection conn, iDB2DatabaseInfo databaseInfo)
        {
            string     query = "SELECT COUNT(*) FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = " + paramPrefix + "schema";
            IDbCommand cmd   = DatabaseServices.ExecutionService.CreateCommand(conn, query);

            cmd.CommandTimeout = QueryTimeout;
            DatabaseServices.ExecutionService.CreateParameter(cmd, paramPrefix + "schema", DbType.String, databaseInfo.Database);
            using (IDataReader reader = cmd.ExecuteReader()) {
                return(reader.Read());
            }
        }