From f2d4e3047e853ce132ea33b2ab40f0e554ee8f2c Mon Sep 17 00:00:00 2001 From: xqliu Date: Thu, 8 Nov 2012 11:09:28 +0000 Subject: [PATCH] TDQ-6291 TDQ-6364 1) fix the problem of reload sybase connection; 2) on branch 5.1 git-svn-id: http://talendforge.org/svn/tos/branches/branch-5_1@93461 f6f1c999-d317-4740-80b0-e6d1abc6f99e --- .../builder/database/ExtractMetaDataUtils.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/org.talend.metadata.managment/src/main/java/org/talend/core/model/metadata/builder/database/ExtractMetaDataUtils.java b/org.talend.metadata.managment/src/main/java/org/talend/core/model/metadata/builder/database/ExtractMetaDataUtils.java index df9bd18947..2ce7066625 100644 --- a/org.talend.metadata.managment/src/main/java/org/talend/core/model/metadata/builder/database/ExtractMetaDataUtils.java +++ b/org.talend.metadata.managment/src/main/java/org/talend/core/model/metadata/builder/database/ExtractMetaDataUtils.java @@ -82,6 +82,8 @@ public class ExtractMetaDataUtils { private static final char SPLIT_CHAR = ','; + private static final String SYBASE_DATABASE_PRODUCT_NAME = "Adaptive Server Enterprise"; //$NON-NLS-1$ + public static Connection conn; public static String schema; @@ -113,7 +115,7 @@ public class ExtractMetaDataUtils { dbMetaData = createFakeDatabaseMetaData(conn); } else if (dbType.equals(EDatabaseTypeName.SAS.getXmlName())) { dbMetaData = createSASFakeDatabaseMetaData(conn); - } else if (EDatabaseTypeName.SYBASEASE.getDisplayName().equals(dbType)) { + } else if (EDatabaseTypeName.SYBASEASE.getDisplayName().equals(dbType) || SYBASE_DATABASE_PRODUCT_NAME.equals(dbType)) { dbMetaData = createSybaseFakeDatabaseMetaData(conn); } else { dbMetaData = conn.getMetaData(); @@ -166,6 +168,8 @@ public class ExtractMetaDataUtils { teraDbmeta.setDatabaseName(database); } else if (dbType.equals(EDatabaseTypeName.SAS.getXmlName())) { dbMetaData = createSASFakeDatabaseMetaData(conn); + } else if (EDatabaseTypeName.SYBASEASE.getDisplayName().equals(dbType) || SYBASE_DATABASE_PRODUCT_NAME.equals(dbType)) { + dbMetaData = createSybaseFakeDatabaseMetaData(conn); } else { dbMetaData = conn.getMetaData(); } @@ -219,7 +223,7 @@ public class ExtractMetaDataUtils { teraDbmeta.setDatabaseName(database); } else if (dbType.equals(EDatabaseTypeName.SAS.getXmlName())) { dbMetaData = createSASFakeDatabaseMetaData(conn); - } else if (EDatabaseTypeName.SYBASEASE.getDisplayName().equals(dbType)) { + } else if (EDatabaseTypeName.SYBASEASE.getDisplayName().equals(dbType) || SYBASE_DATABASE_PRODUCT_NAME.equals(dbType)) { dbMetaData = createSybaseFakeDatabaseMetaData(conn); } else { dbMetaData = conn.getMetaData(); @@ -242,11 +246,13 @@ public class ExtractMetaDataUtils { if ("net.sourceforge.jtds.jdbc.ConnectionJDBC3".equals(conn.getClass().getName())) { //$NON-NLS-1$ dbMetaData = createJtdsDatabaseMetaData(conn); } else if (dbMetaData.getDatabaseProductName().equals(EDatabaseTypeName.IBMDB2ZOS.getXmlName())) { - getDatabaseMetaData(conn, EDatabaseTypeName.IBMDB2ZOS.getXmlName()); + dbMetaData = getDatabaseMetaData(conn, EDatabaseTypeName.IBMDB2ZOS.getXmlName()); } else if (dbMetaData.getDatabaseProductName().equals(EDatabaseTypeName.TERADATA.getXmlName())) { - getDatabaseMetaData(conn, EDatabaseTypeName.TERADATA.getXmlName()); + dbMetaData = getDatabaseMetaData(conn, EDatabaseTypeName.TERADATA.getXmlName()); } else if (dbMetaData.getDatabaseProductName().equals(EDatabaseTypeName.SAS.getXmlName())) { - getDatabaseMetaData(conn, EDatabaseTypeName.SAS.getXmlName()); + dbMetaData = getDatabaseMetaData(conn, EDatabaseTypeName.SAS.getXmlName()); + } else if (dbMetaData.getDatabaseProductName().equals(SYBASE_DATABASE_PRODUCT_NAME)) { + dbMetaData = getDatabaseMetaData(conn, SYBASE_DATABASE_PRODUCT_NAME); } } return dbMetaData;