aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/jdbc/example/corba
diff options
context:
space:
mode:
authorPostgreSQL Daemon <webmaster@postgresql.org>2004-01-19 20:07:14 +0000
committerPostgreSQL Daemon <webmaster@postgresql.org>2004-01-19 20:07:14 +0000
commit2a9bf5b33d0b82e9f483f6a5ced9d71e1c009441 (patch)
tree8c0c38494985b8dbfd2311b5be51fa76a271ba17 /src/interfaces/jdbc/example/corba
parent9bd681a5220186230e0ea0f718a71af7ebe4b560 (diff)
downloadpostgresql-2a9bf5b33d0b82e9f483f6a5ced9d71e1c009441.tar.gz
postgresql-2a9bf5b33d0b82e9f483f6a5ced9d71e1c009441.zip
JDBC is now on GBorg
Diffstat (limited to 'src/interfaces/jdbc/example/corba')
-rw-r--r--src/interfaces/jdbc/example/corba/StockClient.java348
-rw-r--r--src/interfaces/jdbc/example/corba/StockDB.java134
-rw-r--r--src/interfaces/jdbc/example/corba/StockDispenserImpl.java92
-rw-r--r--src/interfaces/jdbc/example/corba/StockItemImpl.java208
-rw-r--r--src/interfaces/jdbc/example/corba/StockServer.java58
-rw-r--r--src/interfaces/jdbc/example/corba/readme34
-rwxr-xr-xsrc/interfaces/jdbc/example/corba/stock.idl40
-rw-r--r--src/interfaces/jdbc/example/corba/stock.sql27
8 files changed, 0 insertions, 941 deletions
diff --git a/src/interfaces/jdbc/example/corba/StockClient.java b/src/interfaces/jdbc/example/corba/StockClient.java
deleted file mode 100644
index 217552f0810..00000000000
--- a/src/interfaces/jdbc/example/corba/StockClient.java
+++ /dev/null
@@ -1,348 +0,0 @@
-package example.corba;
-
-import java.io.*;
-import java.sql.*;
-import org.omg.CosNaming.*;
-
-/*
- * This class is the frontend to our mini CORBA application.
- *
- * It has no GUI, just a text frontend to keep it simple.
- *
- * $PostgreSQL: pgsql/src/interfaces/jdbc/example/corba/StockClient.java,v 1.7 2003/11/29 22:41:21 pgsql Exp $
- */
-public class StockClient
-{
- org.omg.CosNaming.NamingContext nameService;
-
- stock.StockDispenser dispenser;
- stock.StockItem item;
-
- BufferedReader in;
-
- public StockClient(String[] args)
- {
- try
- {
- // We need this for our IO
- in = new BufferedReader(new InputStreamReader(System.in));
-
- // Initialize the orb
- org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null);
-
- // Get a reference to the Naming Service
- org.omg.CORBA.Object nameServiceObj = orb.resolve_initial_references("NameService");
- if (nameServiceObj == null)
- {
- System.err.println("nameServiceObj == null");
- return ;
- }
-
- nameService = org.omg.CosNaming.NamingContextHelper.narrow(nameServiceObj);
- if (nameService == null)
- {
- System.err.println("nameService == null");
- return ;
- }
-
- // Resolve the dispenser
- NameComponent[] dispName = {
- new NameComponent("StockDispenser", "Stock")
- };
- dispenser = stock.StockDispenserHelper.narrow(nameService.resolve(dispName));
- if (dispenser == null)
- {
- System.err.println("dispenser == null");
- return ;
- }
-
- // Now run the front end.
- run();
- }
- catch (Exception e)
- {
- System.out.println(e.toString());
- e.printStackTrace();
- System.exit(1);
- }
- }
-
- public static void main(String[] args)
- {
- new StockClient(args);
- }
-
- public void run()
- {
- // First reserve a StockItem
- try
- {
- item = dispenser.reserveItem();
- }
- catch (Exception e)
- {
- System.out.println(e.toString());
- e.printStackTrace();
- System.exit(1);
- }
-
- mainMenu();
-
- // finally free the StockItem
- try
- {
- dispenser.releaseItem(item);
- }
- catch (Exception e)
- {
- System.out.println(e.toString());
- e.printStackTrace();
- System.exit(1);
- }
- }
-
- private void mainMenu()
- {
- boolean run = true;
- while (run)
- {
- System.out.println("\nCORBA Stock System\n");
- System.out.println(" 1 Display stock item");
- System.out.println(" 2 Remove item from stock");
- System.out.println(" 3 Put item into stock");
- System.out.println(" 4 Order item");
- System.out.println(" 5 Display all items");
- System.out.println(" 0 Exit");
- int i = getMenu("Main", 5);
- switch (i)
- {
- case 0:
- run = false;
- break;
-
- case 1:
- displayItem();
- break;
-
- case 2:
- bookOut();
- break;
-
- case 3:
- bookIn();
- break;
-
- case 4:
- order(0);
- break;
-
- case 5:
- displayAll();
- break;
- }
- }
- }
-
- private void displayItem()
- {
- try
- {
- int id = getMenu("\nStockID to display", item.getLastID());
- if (id > 0)
- {
- item.fetchItem(id);
- System.out.println("========================================");
-
- String status = "";
- if (!item.isItemValid())
- status = " ** Superceded **";
-
- int av = item.getAvailable();
-
- System.out.println(" Stock ID: " + id + status +
- "\nItems Available: " + av +
- "\nItems on order: " + item.getOrdered() +
- "\n Description: " + item.getDescription());
- System.out.println("========================================");
-
- if (av > 0)
- if (yn("Take this item out of stock?"))
- {
- int rem = 1;
- if (av > 1)
- rem = getMenu("How many?", av);
- if (rem > 0)
- item.removeStock(rem);
- }
-
- }
- }
- catch (Exception e)
- {
- System.out.println(e.toString());
- e.printStackTrace();
- }
- }
-
- private void bookOut()
- {
- try
- {
- int id = getMenu("\nStockID to take out", item.getLastID());
- if (id > 0)
- {
- item.fetchItem(id);
- int av = item.getAvailable();
- if (av > 0)
- if (yn("Take this item out of stock?"))
- {
- int rem = 1;
- if (av > 1)
- rem = getMenu("How many?", av);
- if (rem > 0)
- item.removeStock(rem);
- }
- else
- {
- System.out.println("This item is not in stock.");
- int order = item.getOrdered();
- if (order > 0)
- System.out.println("There are " + item.getOrdered() + " items on order.");
- else
- {
- if (item.isItemValid())
- {
- System.out.println("You will need to order some more " + item.getDescription());
- order(id);
- }
- else
- System.out.println("This item is now obsolete");
- }
- }
- }
- else
- System.out.println(item.getDescription() + "\nThis item is out of stock");
- }
- catch (Exception e)
- {
- System.out.println(e.toString());
- e.printStackTrace();
- }
- }
-
- // book an item into stock
- private void bookIn()
- {
- try
- {
- int id = getMenu("\nStockID to book in", item.getLastID());
- item.fetchItem(id);
- System.out.println(item.getDescription());
-
- if (item.getOrdered() > 0)
- {
- int am = getMenu("How many do you want to book in", item.getOrdered());
- if (am > 0)
- item.addNewStock(am);
- }
- else
- System.out.println("You don't have any of this item on ordered");
-
- }
- catch (Exception e)
- {
- System.out.println(e.toString());
- e.printStackTrace();
- }
- }
-
- // Order an item
- private void order(int id)
- {
- try
- {
- if (id == 0)
- id = getMenu("\nStockID to order", item.getLastID());
- item.fetchItem(id);
- System.out.println(item.getDescription());
- int am = getMenu("How many do you want to order", 999);
- if (am > 0)
- item.orderStock(am);
- }
- catch (Exception e)
- {
- System.out.println(e.toString());
- e.printStackTrace();
- }
- }
-
- private void displayAll()
- {
- try
- {
- boolean cont = true;
- int nr = item.getLastID();
- String header = "\nId\tAvail\tOrdered\tDescription";
- System.out.println(header);
- for (int i = 1;i <= nr && cont;i++)
- {
- item.fetchItem(i);
- System.out.println("" + i + "\t" + item.getAvailable() + "\t" + item.getOrdered() + "\t" + item.getDescription());
- if ((i % 20) == 0)
- {
- if ((cont = yn("Continue?")))
- System.out.println(header);
- }
- }
- }
- catch (Exception e)
- {
- System.out.println(e.toString());
- e.printStackTrace();
- }
- }
-
- private int getMenu(String title, int max)
- {
- int v = -1;
- while (v < 0 || v > max)
- {
- System.out.print(title);
- System.out.print(" [0-" + max + "]: ");
- System.out.flush();
- try
- {
- v = Integer.parseInt(in.readLine());
- }
- catch (Exception nfe)
- {
- v = -1;
- }
- }
- return v;
- }
-
- private boolean yn(String title)
- {
- try
- {
- while (true)
- {
- System.out.print(title);
- System.out.flush();
- String s = in.readLine();
- if (s.startsWith("y") || s.startsWith("Y"))
- return true;
- if (s.startsWith("n") || s.startsWith("N"))
- return false;
- }
- }
- catch (Exception nfe)
- {
- System.out.println(nfe.toString());
- nfe.printStackTrace();
- System.exit(1);
- }
- return false;
- }
-}
diff --git a/src/interfaces/jdbc/example/corba/StockDB.java b/src/interfaces/jdbc/example/corba/StockDB.java
deleted file mode 100644
index 90fb8d28048..00000000000
--- a/src/interfaces/jdbc/example/corba/StockDB.java
+++ /dev/null
@@ -1,134 +0,0 @@
-package example.corba;
-
-import java.sql.*;
-
-/*
- * This class handles the JDBC side of things. It opens a connection to
- * the database, and performes queries on that database.
- *
- * In essence, you could use this class on it's own. The rest of the classes
- * in this example handle either the CORBA mechanism, or the frontend.
- *
- * Note: Before you ask, why perform a query on each call, you have to remember
- * that an object could be changed by another client, and we need to ensure that
- * the returned data is live and accurate.
- *
- * $PostgreSQL: pgsql/src/interfaces/jdbc/example/corba/StockDB.java,v 1.5 2003/11/29 22:41:21 pgsql Exp $
- */
-public class StockDB
-{
- Connection con;
- Statement st;
-
- // the current stock number
- int id = -1;
-
- public void connect(String url, String usr, String pwd) throws Exception
- {
- Class.forName("org.postgresql.Driver");
- System.out.println("Connecting to " + url);
- con = DriverManager.getConnection(url, usr, pwd);
- st = con.createStatement();
- }
-
- public void closeConnection() throws Exception
- {
- con.close();
- }
-
- public void fetchItem(int id) throws Exception
- {
- this.id = id;
- }
-
- public int newItem() throws Exception
- {
- // tba
- return -1;
- }
-
- public String getDescription() throws SQLException
- {
- ResultSet rs = st.executeQuery("select description from stock where id=" + id);
- if (rs != null)
- {
- rs.next();
- String s = rs.getString(1);
- rs.close();
- return s;
- }
- throw new SQLException("No ResultSet");
- }
-
- public int getAvailable() throws SQLException
- {
- ResultSet rs = st.executeQuery("select avail from stock where id=" + id);
- if (rs != null)
- {
- rs.next();
- int v = rs.getInt(1);
- rs.close();
- return v;
- }
- throw new SQLException("No ResultSet");
- }
-
- public int getOrdered() throws SQLException
- {
- ResultSet rs = st.executeQuery("select ordered from stock where id=" + id);
- if (rs != null)
- {
- rs.next();
- int v = rs.getInt(1);
- rs.close();
- return v;
- }
- throw new SQLException("No ResultSet");
- }
-
- public boolean isItemValid() throws SQLException
- {
- ResultSet rs = st.executeQuery("select valid from stock where id=" + id);
- if (rs != null)
- {
- rs.next();
- boolean b = rs.getBoolean(1);
- rs.close();
- return b;
- }
- throw new SQLException("No ResultSet");
- }
-
- public void addNewStock(int amount) throws SQLException
- {
- st.executeUpdate("update stock set avail=avail+" + amount +
- ", ordered=ordered-" + amount +
- " where id=" + id + " and ordered>=" + amount);
- }
-
- public void removeStock(int amount) throws SQLException
- {
- st.executeUpdate("update stock set avail=avail-" + amount +
- " where id=" + id);
- }
-
- public void orderStock(int amount) throws SQLException
- {
- st.executeUpdate("update stock set ordered=ordered+" + amount +
- " where id=" + id);
- }
-
- public int getLastID() throws SQLException
- {
- ResultSet rs = st.executeQuery("select max(id) from stock");
- if (rs != null)
- {
- rs.next();
- int v = rs.getInt(1);
- rs.close();
- return v;
- }
- throw new SQLException("No ResultSet");
- }
-
-}
diff --git a/src/interfaces/jdbc/example/corba/StockDispenserImpl.java b/src/interfaces/jdbc/example/corba/StockDispenserImpl.java
deleted file mode 100644
index 132b58f64c0..00000000000
--- a/src/interfaces/jdbc/example/corba/StockDispenserImpl.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package example.corba;
-
-import org.omg.CosNaming.*;
-
-/*
- * This class implements the server side of the example.
- *
- * $PostgreSQL: pgsql/src/interfaces/jdbc/example/corba/StockDispenserImpl.java,v 1.6 2003/11/29 22:41:21 pgsql Exp $
- */
-public class StockDispenserImpl extends stock._StockDispenserImplBase
-{
- private int maxObjects = 10;
- private int numObjects = 0;
- private StockItemStatus[] stock = new StockItemStatus[maxObjects];
-
- public StockDispenserImpl(String[] args, String name, int num)
- {
- super();
-
- try
- {
- // get reference to orb
- org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null);
-
- // prestart num objects
- if (num >= maxObjects)
- num = maxObjects;
- numObjects = num;
- for (int i = 0;i < numObjects;i++)
- {
- stock[i] = new StockItemStatus();
- stock[i].ref = new StockItemImpl(args, "StockItem" + (i + 1));
- orb.connect(stock[i].ref);
- }
- }
- catch (org.omg.CORBA.SystemException e)
- {
- e.printStackTrace();
- }
- }
-
- /*
- * This method, defined in stock.idl, reserves a slot in the dispenser
- */
- public stock.StockItem reserveItem() throws stock.StockException
- {
- for (int i = 0;i < numObjects;i++)
- {
- if (!stock[i].inUse)
- {
- stock[i].inUse = true;
- System.out.println("Reserving slot " + i);
- return stock[i].ref;
- }
- }
- return null;
- }
-
- /*
- * This releases a slot from the dispenser
- */
- public void releaseItem(stock.StockItem item) throws stock.StockException
- {
- for (int i = 0;i < numObjects;i++)
- {
- if (stock[i].ref.getInstanceName().equals(item.getInstanceName()))
- {
- stock[i].inUse = false;
- System.out.println("Releasing slot " + i);
- return ;
- }
- }
- System.out.println("Reserved object not a member of this dispenser");
- return ;
- }
-
- /*
- * This class defines a slot in the dispenser
- */
- class StockItemStatus
- {
- StockItemImpl ref;
- boolean inUse;
-
- StockItemStatus()
- {
- ref = null;
- inUse = false;
- }
- }
-
-}
diff --git a/src/interfaces/jdbc/example/corba/StockItemImpl.java b/src/interfaces/jdbc/example/corba/StockItemImpl.java
deleted file mode 100644
index 4b52dc18056..00000000000
--- a/src/interfaces/jdbc/example/corba/StockItemImpl.java
+++ /dev/null
@@ -1,208 +0,0 @@
-package example.corba;
-
-import org.omg.CosNaming.*;
-
-/*
- * This class implements the server side of the example.
- *
- * $PostgreSQL: pgsql/src/interfaces/jdbc/example/corba/StockItemImpl.java,v 1.4 2003/11/29 22:41:21 pgsql Exp $
- */
-public class StockItemImpl extends stock._StockItemImplBase
-{
- private StockDB db;
- private String instanceName;
-
- public StockItemImpl(String[] args, String iname)
- {
- super();
- try
- {
- db = new StockDB();
- db.connect(args[1], args[2], args[3]);
- System.out.println("StockDB object " + iname + " created");
- instanceName = iname;
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
-
- /*
- * This is defined in stock.idl
- *
- * It sets the item to view
- */
- public void fetchItem(int id) throws stock.StockException
- {
- try
- {
- db.fetchItem(id);
- }
- catch (Exception e)
- {
- throw new stock.StockException(e.toString());
- }
- }
-
-
- /*
- * This is defined in stock.idl
- *
- * It sets the item to view
- */
- public int newItem() throws stock.StockException
- {
- try
- {
- return db.newItem();
- }
- catch (Exception e)
- {
- throw new stock.StockException(e.toString());
- }
- }
-
- /*
- * This is defined in stock.idl
- *
- * It returns the description of a Stock item
- */
- public String getDescription() throws stock.StockException
- {
- try
- {
- return db.getDescription();
- }
- catch (Exception e)
- {
- throw new stock.StockException(e.toString());
- }
- }
-
- /*
- * This is defined in stock.idl
- *
- * It returns the description of a Stock item
- */
- public int getAvailable() throws stock.StockException
- {
- try
- {
- return db.getAvailable();
- }
- catch (Exception e)
- {
- throw new stock.StockException(e.toString());
- }
- }
-
- /*
- * This is defined in stock.idl
- *
- * It returns the description of a Stock item
- */
- public int getOrdered() throws stock.StockException
- {
- try
- {
- return db.getOrdered();
- }
- catch (Exception e)
- {
- throw new stock.StockException(e.toString());
- }
- }
-
- /*
- * This is defined in stock.idl
- *
- * It returns the description of a Stock item
- */
- public boolean isItemValid() throws stock.StockException
- {
- try
- {
- return db.isItemValid();
- }
- catch (Exception e)
- {
- throw new stock.StockException(e.toString());
- }
- }
-
- /*
- * This is defined in stock.idl
- *
- * It returns the description of a Stock item
- */
- public void addNewStock(int id) throws stock.StockException
- {
- try
- {
- db.addNewStock(id);
- }
- catch (Exception e)
- {
- throw new stock.StockException(e.toString());
- }
- }
-
- /*
- * This is defined in stock.idl
- *
- * It returns the description of a Stock item
- */
- public void removeStock(int id) throws stock.StockException
- {
- try
- {
- db.removeStock(id);
- }
- catch (Exception e)
- {
- throw new stock.StockException(e.toString());
- }
- }
-
- /*
- * This is defined in stock.idl
- *
- * It returns the description of a Stock item
- */
- public void orderStock(int id) throws stock.StockException
- {
- try
- {
- db.orderStock(id);
- }
- catch (Exception e)
- {
- throw new stock.StockException(e.toString());
- }
- }
-
- /*
- * This returns the highest id used, hence the number of items available
- */
- public int getLastID() throws stock.StockException
- {
- try
- {
- return db.getLastID();
- }
- catch (Exception e)
- {
- throw new stock.StockException(e.toString());
- }
- }
-
- /*
- * This is used by our Dispenser
- */
- public String getInstanceName()
- {
- return instanceName;
- }
-}
-
diff --git a/src/interfaces/jdbc/example/corba/StockServer.java b/src/interfaces/jdbc/example/corba/StockServer.java
deleted file mode 100644
index 18c8b893faa..00000000000
--- a/src/interfaces/jdbc/example/corba/StockServer.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package example.corba;
-
-import org.omg.CosNaming.*;
-
-/*
- * This class implements the server side of the example.
- *
- * $PostgreSQL: pgsql/src/interfaces/jdbc/example/corba/StockServer.java,v 1.6 2003/11/29 22:41:21 pgsql Exp $
- */
-public class StockServer
-{
- public static void main(String[] args)
- {
- int numInstances = 3;
-
- try
- {
- // Initialise the ORB
- org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null);
-
- // Create the StockDispenser object
- StockDispenserImpl dispenser = new StockDispenserImpl(args, "Stock Dispenser", numInstances);
-
- // Export the new object
- orb.connect(dispenser);
-
- // Get the naming service
- org.omg.CORBA.Object nameServiceObj = orb.resolve_initial_references("NameService");
- if (nameServiceObj == null)
- {
- System.err.println("nameServiceObj = null");
- return ;
- }
-
- org.omg.CosNaming.NamingContext nameService = org.omg.CosNaming.NamingContextHelper.narrow(nameServiceObj);
- if (nameService == null)
- {
- System.err.println("nameService = null");
- return ;
- }
-
- // bind the dispenser into the naming service
- NameComponent[] dispenserName = {
- new NameComponent("StockDispenser", "Stock")
- };
- nameService.rebind(dispenserName, dispenser);
-
- // Now wait forever for the current thread to die
- Thread.currentThread().join();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
-}
-
-
diff --git a/src/interfaces/jdbc/example/corba/readme b/src/interfaces/jdbc/example/corba/readme
deleted file mode 100644
index d44c17613f3..00000000000
--- a/src/interfaces/jdbc/example/corba/readme
+++ /dev/null
@@ -1,34 +0,0 @@
-
-The CORBA example is the most complicated of the examples. It
-aims to show how to use JDBC & Java2's ORB to access PostgreSQL.
-
-To compile:
-
-Type "make corba" to build the example. This will create a new directory
-stock which contains the stubs needed by the orb, and all required classes
-under the example/corba directory.
-
-To run:
-
-NOTE: To run, you will need 3 shells on Win32 (under unix you can get away
-with two shells):
-
-1: Start the naming service
-
-Unix: tnameserv -ORBInitialPort 1050 &
-Win32: tnameserv -ORBInitialPort 1050
-
-2: Start the StockServer
-
- java example.corba.StockServer 3 jdbc:postgresql:dbase user passwd -ORBInitialPort 1050
-
-Where:
- 3 Number of concurrent sessions to allow
- dbase The database (including a hostname if required)
- user The PostgreSQL user name
- passwd The password
-
-3: Using a fresh shell, run the client:
-
- java example.corba.StockClient -ORBInitialPort 1050
-
diff --git a/src/interfaces/jdbc/example/corba/stock.idl b/src/interfaces/jdbc/example/corba/stock.idl
deleted file mode 100755
index 4be5a79d7d2..00000000000
--- a/src/interfaces/jdbc/example/corba/stock.idl
+++ /dev/null
@@ -1,40 +0,0 @@
-// $PostgreSQL: pgsql/src/interfaces/jdbc/example/corba/stock.idl,v 1.2 2003/11/29 22:41:21 pgsql Exp $
-//
-// This is our CORBA bindings for a very simple stock control
-// system.
-//
-// $PostgreSQL: pgsql/src/interfaces/jdbc/example/corba/stock.idl,v 1.2 2003/11/29 22:41:21 pgsql Exp $
-//
-
-// For some reason, idltojava on my setup doesn't like this to be
-// in caps. It could be a problem with Win95 & Samba, but for now,
-// this is in lowercase
-module stock
-{
- exception StockException
- {
- string reason;
- };
-
- interface StockItem
- {
- void fetchItem(in long id) raises (StockException);
- long newItem() raises (StockException);
- string getDescription() raises (StockException);
- long getAvailable() raises (StockException);
- long getOrdered() raises (StockException);
- boolean isItemValid() raises (StockException);
- void addNewStock(in long amount) raises (StockException);
- void removeStock(in long amount) raises (StockException);
- void orderStock(in long amount) raises (StockException);
- long getLastID() raises (StockException);
- string getInstanceName();
- };
-
- interface StockDispenser
- {
- StockItem reserveItem() raises (StockException);
- void releaseItem(in StockItem item) raises (StockException);
- };
-
-};
diff --git a/src/interfaces/jdbc/example/corba/stock.sql b/src/interfaces/jdbc/example/corba/stock.sql
deleted file mode 100644
index 6082ad6fe1e..00000000000
--- a/src/interfaces/jdbc/example/corba/stock.sql
+++ /dev/null
@@ -1,27 +0,0 @@
---
--- This creates the database for the stock example
--- $PostgreSQL: pgsql/src/interfaces/jdbc/example/corba/stock.sql,v 1.2 2003/11/29 22:41:21 pgsql Exp $
---
-drop table stock;
-
-create table stock (
- id int4,
- avail int4,
- ordered int4,
- valid bool,
- description text
-);
-
-create index stock_id on stock(id);
-
-copy stock from stdin;
-1 19 0 t Dell Latitude XPi P133 Laptop
-2 3 2 t Iomega Zip Plus drive
-3 2 0 f Iomega Ext/Par drive
-4 0 4 t Iomega Ext USB drive
-5 200 0 t Blank Unbranded CDR media
-6 20 30 t Iomega Zip media 100Mb
-\.
-
-grant all on stock to public;
-grant all on stock_id to public;