Beispiel #1
0
        public override IEnumerable <ITableSourceInfo> ListTableSources(IDatabaseInfo database, IsTableSourceToIgnore isTableSourceToIgnore)
        {
            IList <ITableSourceInfo> tables       = new List <ITableSourceInfo>();
            DB2ZOSDatabaseInfo       databaseInfo = database as DB2ZOSDatabaseInfo;

            if (databaseInfo == null)
            {
                return(null);
            }
            using (IDbConnection conn = DatabaseServices.TransactionService.CreateConnection()) {
                string sql = "SELECT NAME as TABLE_NAME "
                             + "FROM SYSIBM.SYSTABLES  "
                             + "WHERE TYPE in ('T', 'V', 'P') and CREATOR = '" + database.Identifier + "' ";
                //Console.WriteLine("ListTableSources SQL: " + sql);

                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 DB2ZOSTableSourceInfo(DatabaseServices, databaseInfo, tableName, qualifiedTableName));
                        }
                    }
                }
            }
            return(tables);
        }
Beispiel #2
0
        private bool DatabaseExists(IDbConnection conn, DB2ZOSDatabaseInfo databaseInfo)
        {
            string     query = "SELECT COUNT(*) FROM SYSIBM.SYSTABLES WHERE CREATOR = " + 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());
            }
        }