package dbj.odmg; import COM.POET.odmg.*; import COM.POET.odmg.collection.*; import java.io.IOException; import java.io.FileInputStream; import java.util.Properties; import java.util.Enumeration; public class UpdateStock { Database dbase; public UpdateStock (Database db) { dbase = db; } public void update (String isbn, int stock) throws ODMGException { String queryString = "SELECT b FROM BookExtent as b WHERE isbn_ = $1"; Transaction txn = new Transaction (); txn.begin (); try { OQLQuery query = new OQLQuery (queryString); query.bind (isbn); Object result = query.execute (); CollectionOfObject coll = (CollectionOfObject) result; Enumeration e = coll.elements (); if (e.hasMoreElements ()) { Book b = (Book) e.nextElement (); b.setStock (stock); System.out.println ("stock updated for: " + b); } } catch (ODMGException exc) { txn.abort (); throw exc; } txn.commit (); } public static void main (String args[]) throws IOException { if (args.length != 2) { System.out.println ("usage: dbj.odmg.UpdateStock isbn stock"); System.exit (1); } Properties props = new Properties (); props.load (new FileInputStream ("dbj.properties")); try { Database db = Database.open (props.getProperty ("odmg.database"), Database.openReadWrite); UpdateStock app = new UpdateStock (db); app.update (args[0], Integer.parseInt (args[1])); } catch (Exception exc) { exc.printStackTrace (); } } }