public ConnectionInfo obtainConnectionInfoNatively()

in old/dekaf-sybase/src/main/java/org/jetbrains/dekaf/jdbc/SybaseIntermediateFacade.java [56:92]


  public ConnectionInfo obtainConnectionInfoNatively() {
    String[] env;
    String rdbmsName, driverVersionStr;

    final JdbcIntermediateSession session = openSession();
    try {
      // retrieving all except driver version
      env = session.queryOneRow(CONNECTION_INFO_QUERY, 4, String.class);

      // getting the driver version
      try {
        DatabaseMetaData md = session.getConnection().getMetaData();
        rdbmsName = md.getDatabaseProductName();
        if (rdbmsName == null) rdbmsName = session.getConnection().getClass().getName();
        driverVersionStr = md.getDriverVersion();
      }
      catch (SQLException sqle) {
        throw getExceptionRecognizer().recognizeException(sqle, "getting versions using JDBC metadata");
      }
    }
    finally {
      session.close();
    }

    Version driverVersion =
        extractVersion(driverVersionStr, SIMPLE_VERSION_PATTERN, 1);

    if (env != null) {
      assert env.length == 4;
      String serverVersionStr = env[3];
      Version serverVersion = parseServerVersion(serverVersionStr);
      return new ConnectionInfo(rdbmsName, env[0], env[1], env[2], serverVersion, driverVersion);
    }
    else {
      return new ConnectionInfo(rdbmsName, null, null, null, Version.ZERO, driverVersion);
    }
  }