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