docs: public void open() throws DBException
      {
          if (m_JDBCConnection == null)
          {
              String strJdbcDriver = this.getProperty(SQLParams.JDBC_DRIVER_PARAM);
              if ((strJdbcDriver == null) || (strJdbcDriver.length() == 0))
              { // If a JDBC driver isn't specified, set up for the default driver
                  String strDataSource = this.getProperty(SQLParams.DATASOURCE_PARAM);
                  if (strDataSource == null)
                      strDataSource = this.getProperty(SQLParams.DEFAULT_DATASOURCE_PARAM);
                  if (strDataSource == null)
                      strDataSource = SQLParams.DEFAULT_DATASOURCE;
                  boolean bDataSourceConnection = false;
                  if (strDataSource != null)
                      bDataSourceConnection = this.setupDataSourceConnection(strDataSource);
  
                  String strDatabaseProductName = null;
                  try {
  					if (m_JDBCConnection != null)
  					{
  						strDatabaseProductName = m_JDBCConnection.getMetaData().getDatabaseProductName();
  						strDatabaseProductName = this.fixDatabaseProductName(strDatabaseProductName);
  					}
  				} catch (SQLException e) {
  					e.printStackTrace();
  				}
                  if ((strDatabaseProductName == null) || (strDatabaseProductName.length() == 0))
                  	strDatabaseProductName = this.getProperty(SQLParams.DATABASE_PRODUCT_PARAM);
                  if ((strDatabaseProductName == null) || (strDatabaseProductName.length() == 0))
                      strDatabaseProductName = DEFAULT_DATABASE_PRODUCT;
                  this.setProperty(SQLParams.INTERNAL_DB_NAME, strDatabaseProductName);
                  this.setupDatabaseProperties(); // If I haven't read the db properties, read them now!
  
                  if (!bDataSourceConnection)
                  {	// Datasource connection could be supplied in the db properties
                      String strDBDataSource = this.getProperty(SQLParams.DATASOURCE_PARAM);
                      if (strDBDataSource == null)
                      	strDBDataSource = this.getProperty(SQLParams.DEFAULT_DATASOURCE_PARAM);
                      if (strDBDataSource != null)
                      	if (!strDBDataSource.equalsIgnoreCase(strDataSource))
                          	bDataSourceConnection = this.setupDataSourceConnection(strDBDataSource);                	
                  }
                  if (!bDataSourceConnection)
                      bDataSourceConnection = this.setupDirectDataSourceConnection();
                  if (!bDataSourceConnection)
                  {
                      strJdbcDriver = this.getProperty(SQLParams.JDBC_DRIVER_PARAM);  // Default driver
                      if (strJdbcDriver == null)
                          strJdbcDriver = this.getProperty(BASE_DATABASE_JDBC_DRIVER);    // Special case - base database
                  }
              }
              if (strJdbcDriver != null)
                  this.setupJDBCConnection(strJdbcDriver);
              this.initConnection();
              this.loadDatabaseProperties();
          }
          
          super.open(); // Do any inherited
      }