@Override
  public void run() {
    StringBuffer sbSQL = new StringBuffer();
    try {
      TableDAO tableDAO = (TableDAO) sel.getFirstElement();

      Map<String, String> parameter = new HashMap<String, String>();
      parameter.put("db", userDB.getDb());
      parameter.put("table", tableDAO.getName());

      SqlMapClient sqlClient = TadpoleSQLManager.getInstance(userDB);
      List<TableColumnDAO> showTableColumns =
          sqlClient.queryForList("tableColumnList", parameter); // $NON-NLS-1$

      sbSQL.append(" DELETE FROM " + tableDAO.getName() + " "); // $NON-NLS-1$ //$NON-NLS-2$
      sbSQL.append("\r\n WHERE \r\n "); // $NON-NLS-1$
      int cnt = 0;
      for (int i = 0; i < showTableColumns.size(); i++) {
        TableColumnDAO dao = showTableColumns.get(i);
        if (Define.isKEY(dao.getKey())) {
          if (cnt == 0)
            sbSQL.append("\t" + dao.getField() + " = ? \r\n"); // $NON-NLS-1$ //$NON-NLS-2$
          else sbSQL.append("\tAND " + dao.getField() + " = ?"); // $NON-NLS-1$ //$NON-NLS-2$
          cnt++;
        }
      }
      sbSQL.append(Define.SQL_DILIMITER); // $NON-NLS-1$

      //
      //			QueryEditorAction qea = new QueryEditorAction();
      FindEditorAndWriteQueryUtil.run(userDB, sbSQL.toString());
    } catch (Exception e) {
      logger.error(Messages.GenerateSQLDeleteAction_10, e);

      Status errStatus =
          new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e); // $NON-NLS-1$
      ExceptionDetailsErrorDialog.openError(
          null, "Error", Messages.GenerateSQLDeleteAction_0, errStatus); // $NON-NLS-1$
    }
  }