public void setClientInfo(String name, String value) throws SQLClientInfoException {
    try {
      getClientInfoProviderImpl().setClientInfo(this, name, value);
    } catch (SQLClientInfoException ciEx) {
      throw ciEx;
    } catch (SQLException sqlEx) {
      SQLClientInfoException clientInfoEx = new SQLClientInfoException();
      clientInfoEx.initCause(sqlEx);

      throw clientInfoEx;
    }
  }
  public void setClientInfo(Properties properties) throws SQLClientInfoException {
    try {
      getClientInfoProviderImpl().setClientInfo(this, properties);
    } catch (SQLClientInfoException ciEx) {
      throw ciEx;
    } catch (SQLException sqlEx) {
      SQLClientInfoException clientInfoEx = new SQLClientInfoException();
      clientInfoEx.initCause(sqlEx);

      throw clientInfoEx;
    }
  }
  public synchronized void setClientInfo(java.sql.Connection conn, String name, String value)
      throws SQLClientInfoException {
    try {
      this.setClientInfoSp.setString(1, name);
      this.setClientInfoSp.setString(2, value);
      this.setClientInfoSp.execute();
    } catch (SQLException sqlEx) {
      SQLClientInfoException clientInfoEx = new SQLClientInfoException();
      clientInfoEx.initCause(sqlEx);

      throw clientInfoEx;
    }
  }
  public synchronized void setClientInfo(java.sql.Connection conn, Properties properties)
      throws SQLClientInfoException {
    try {
      Enumeration propNames = properties.propertyNames();

      while (propNames.hasMoreElements()) {
        String name = (String) propNames.nextElement();
        String value = properties.getProperty(name);

        setClientInfo(conn, name, value);
      }
    } catch (SQLException sqlEx) {
      SQLClientInfoException clientInfoEx = new SQLClientInfoException();
      clientInfoEx.initCause(sqlEx);

      throw clientInfoEx;
    }
  }