Ejemplo n.º 1
0
  @Override
  public void drop(boolean ignoreDoesNotExist) throws SQLException {
    try {
      super.drop(ignoreDoesNotExist);
    } catch (SQLException ex) {
      if (ex.getSQLState().equals("42P01")) {
        // the triggers table does not exist anymore
        // ignore...
      } else {
        throw ex;
      }
    }

    PreparedStatement ps =
        yordifier
            .getConnection()
            .prepareStatement("DELETE FROM " + Yordifier.TRIGGERS.getName() + " WHERE NAME = ?");
    ps.setString(1, name);
    ps.execute();
  }
Ejemplo n.º 2
0
  /**
   * Holt sich alle Triggers zu der übergebenen Procedure aus der Datenbank, die über die Yordifier
   * Connection angebunden ist.
   *
   * @param yordifier Yordifier für die Connection
   * @param procedure Procedure für die die Trigger geholt werden sollen
   * @return Liste von Triggers
   * @throws SQLException Falls etaws schief geht :-)
   */
  public static List<Trigger> getAllByProcedure(Yordifier yordifier, Procedure procedure)
      throws SQLException {
    PreparedStatement ps =
        yordifier
            .getConnection()
            .prepareStatement(
                "SELECT NAME, TABLE_NAME FROM "
                    + Yordifier.TRIGGERS.getName()
                    + " WHERE FUNCTION_NAME = ?");
    ps.setString(1, procedure.getName());
    ResultSet rs = ps.executeQuery();

    List<Trigger> triggers = new ArrayList<Trigger>();
    while (rs.next()) {
      Trigger t = new Trigger(yordifier);
      t.created = true;
      t.procedure = procedure;
      t.name = rs.getString(1);
      t.table = rs.getString(2);
      triggers.add(t);
    }

    return triggers;
  }