package railo.runtime.db; import java.sql.PreparedStatement; import java.sql.SQLException; import railo.commons.lang.StringUtil; public class DataSourceUtil { public static boolean isMSSQL(DatasourceConnection dc) { try { if(dc.getConnection().getMetaData().getDatabaseProductName().indexOf("Microsoft")!=-1) return true; } catch (SQLException e) { String className=dc.getDatasource().getClazz().getName(); if(className.equals("com.microsoft.jdbc.sqlserver.SQLServerDriver") || className.equals("net.sourceforge.jtds.jdbc.Driver")) return true; } return false; } public static boolean isMSSQLDriver(DatasourceConnection dc) { try { if(dc.getConnection().getMetaData().getDriverName().indexOf("Microsoft SQL Server JDBC Driver")!=-1) return true; } catch (SQLException e) {} String className=dc.getDatasource().getClazz().getName(); return className.equals("com.microsoft.jdbc.sqlserver.SQLServerDriver"); } public static boolean isValid(DatasourceConnection dc, int timeout) throws Throwable { return dc.getConnection().isValid(timeout); } public static boolean isClosed(PreparedStatement ps, boolean defaultValue) { try { return ps.isClosed(); } catch (Throwable t) { return defaultValue; } } public static String getDatabaseName(DatasourceConnection dc) throws SQLException { String dbName=null; try { dbName = dc.getDatasource().getDatabase(); } catch(Throwable t) {} if (StringUtil.isEmpty(dbName)) dbName = dc.getConnection().getCatalog(); // works on most JDBC drivers (except Oracle ) return dbName; } }