提交 db78c4f6 编写于 作者: S serge-rider

#2633 SQL Server & Sybase schema list read fix


Former-commit-id: 4c1d4453
上级 1ff53e84
......@@ -209,16 +209,23 @@ public class SQLServerMetaModel extends GenericMetaModel implements DBCQueryTran
@Override
public List<GenericSchema> loadSchemas(JDBCSession session, GenericDataSource dataSource, GenericCatalog catalog) throws DBException {
if (catalog == null || getServerType(dataSource) != ServerType.SQL_SERVER) {
if (catalog == null) {
return super.loadSchemas(session, dataSource, catalog);
}
try (JDBCPreparedStatement dbStat = session.prepareStatement(
"SELECT * FROM " + DBUtils.getQuotedIdentifier(catalog) + ".sys.schemas ORDER BY name")) {
String sql;
if (getServerType(dataSource) == ServerType.SQL_SERVER && dataSource.isServerVersionAtLeast(9 ,0)) {
sql = "SELECT SCHEMA_NAME as name FROM " + DBUtils.getQuotedIdentifier(catalog) + ".INFORMATION_SCHEMA.SCHEMATA";
} else {
sql = "SELECT name FROM " + DBUtils.getQuotedIdentifier(catalog) + ".dbo.sysusers WHERE gid <> 0";
}
sql += "\nORDER BY name";
try (JDBCPreparedStatement dbStat = session.prepareStatement(sql)) {
List<GenericSchema> result = new ArrayList<>();
try (JDBCResultSet dbResult = dbStat.executeQuery()) {
while (dbResult.next()) {
String name = JDBCUtils.safeGetString(dbResult, "name");
String name = JDBCUtils.safeGetString(dbResult, 1);
if (name == null) {
continue;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册