Modifying Structure Tables

Inserting or Modifying Rows

JChem provides the chemaxon.jchem.db.UpdateHandler class for updating and inserting rows in structure tables. A structure table contains fixed columns (cd_...) and, optionally, additional columns that have been defined explicitly.
Java example:

    ConnectionHandler connHandler;
    int id;          // cd_id value of compound
    // Additional columns:
    String name;
    Float stock;
    String comments;
    ...
    int updateMode = isInsertion ? UpdateHandler.INSERT : UpdateHandler.UPDATE;
    UpdateHandler uh = new UpdateHandler(connHandler, updateMode,
            tableName, "name, stock, comments");
    try {
        uh.setStructure(structureSourceString);
        if (!isInsertion) {
            uh.setID(id);
        }
        uh.setValueForAdditionalColumn(1, name);
        uh.setValueForAdditionalColumn(2, stock);
        uh.setValueForAdditionalColumn(3, comments);
        uh.execute();
    } finally {
        uh.close();
    }

More examples:

  • JSP: <JChem's home>/examples/db_search/update.jsp

Deleting Rows

The deleteRows method of the UpdateHandler class is suggested for deleting rows from structure tables. It also increments updateCounter for the given table in JChemProperties, which is important when caching is used during structure search.
Example:

    UpdateHandler.deleteRows(conh, structureTableName, "WHERE cd_id>1000");

Other Methods

Other useful methods of UpdateHandler:

getStructureTables

Retrieves the name of all structure tables.

createStructureTable

Creates a structure table.

dropStructureTable

Removes a structure table.