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); }
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()); } }