query += '\'' + key[i].toString() + '\'';
query += "\"" + Utils.backQuoteChars(key[i].toString()) + "\"";
  protected boolean isKeyInTable(String tableName,				 ResultProducer rp,				 Object[] key)    throws Exception {    String query = "SELECT Key_Run"      + " FROM " + tableName;    String [] keyNames = rp.getKeyNames();    if (keyNames.length != key.length) {      throw new Exception("Key names and key values of different lengths");    }    boolean first = true;    for (int i = 0; i < key.length; i++) {      if (key[i] != null) {	if (first) {	  query += " WHERE ";	  first = false;	} else {	  query += " AND ";	}	query += "Key_" + keyNames[i] + '=';	if (key[i] instanceof String) {	  query += '\'' + key[i].toString() + '\'';	} else {	  query += key[i].toString();	}      }    }    boolean retval = false;    if (execute(query)) {      ResultSet rs = m_PreparedStatement.getResultSet();      if (rs.next()) {	retval = true;	if (rs.next()) {	  throw new Exception("More than one result entry "			      + "for result key: " + query);	}      }      rs.close();    }    return retval;  }