docs: public boolean saveNewRow() {
  
          // check the fields of the primary keys whether one is empty
          boolean           onePKempty = false;
          int               tmp;
          PreparedStatement ps = null;
  
          for (tmp = 0; tmp < primaryKeys.length; tmp++) {
              if (komponente[pkColIndex[tmp]].getContent().equals("")) {
                  onePKempty = true;
  
                  break;
              }
          }
  
          if (onePKempty) {
              komponente[pkColIndex[tmp]].requestFocus();
              ZaurusEditor.printStatus("no value for primary key "
                                       + primaryKeys[tmp]);
  
              return false;
          }    // end of if (onePKempty)
  
          // build the insert string
          String insertString = "INSERT INTO " + tableName + " VALUES(";
  
          for (int j = 0; j < columns.length; j++) {
              if (j > 0) {
                  insertString += ", ";
              }
  
              insertString += "?";
          }    // end of for (int i=0; i<columns.length; i++)
  
          insertString += ")";
  
          // System.out.println("insert string "+insertString);
          try {
  
              // fill the question marks
              ps = cConn.prepareStatement(insertString);
  
              ps.clearParameters();
  
              int i;
  
              for (i = 0; i < columns.length; i++) {
                  ps.setObject(i + 1, komponente[i].getContent());
              }
  
              ps.executeUpdate();
              ZaurusEditor.printStatus("new row was saved to table "
                                       + tableName);
  
              return true;
          } catch (SQLException e) {
              ZaurusEditor.printStatus("SQL Exception: " + e.getMessage());
  
              return false;
          } finally {
              try {
                  if (ps != null) {
                      ps.close();
                  }
              } catch (SQLException e) {}
          }
      }