From d261a5ec861c001f0331e36e01499d8dde7f5c67 Mon Sep 17 00:00:00 2001
From: Peter Mount <peter@retep.org.uk>
Date: Tue, 18 May 1999 06:07:25 +0000
Subject: [PATCH] Transactions in ImageViewer

---
 src/interfaces/jdbc/CHANGELOG                | 3 +++
 src/interfaces/jdbc/example/ImageViewer.java | 7 +++++++
 2 files changed, 10 insertions(+)

diff --git a/src/interfaces/jdbc/CHANGELOG b/src/interfaces/jdbc/CHANGELOG
index 130ecb29fff..29b834bfeb8 100644
--- a/src/interfaces/jdbc/CHANGELOG
+++ b/src/interfaces/jdbc/CHANGELOG
@@ -1,3 +1,6 @@
+Tue May 18 07:00:00 BST 1999
+	- Set the ImageViewer application to use transactions
+
 Tue May 18 00:00:00 BST 1999
 	- Just after committing, I realised why internationalisation isn't
 	  working. This is now fixed (in the Makefile).
diff --git a/src/interfaces/jdbc/example/ImageViewer.java b/src/interfaces/jdbc/example/ImageViewer.java
index 8f6f4c5e68f..56166807d70 100644
--- a/src/interfaces/jdbc/example/ImageViewer.java
+++ b/src/interfaces/jdbc/example/ImageViewer.java
@@ -192,6 +192,9 @@ public class ImageViewer implements ItemListener
     // Create a statement
     stat = db.createStatement();
     
+    // Set the connection to use transactions
+    db.setAutoCommit(false);
+    
     // Also, get the LargeObjectManager for this connection
     lom = ((postgresql.Connection)db).getLargeObjectAPI();
     
@@ -209,6 +212,7 @@ public class ImageViewer implements ItemListener
     try {
       stat.executeUpdate("create table images (imgname name,imgoid oid)");
       label.setText("Initialised database");
+      db.commit();
     } catch(SQLException ex) {
       label.setText(ex.toString());
     }
@@ -310,6 +314,7 @@ public class ImageViewer implements ItemListener
 	  // our own thread
 	  stat = db.createStatement();
 	  stat.executeUpdate("insert into images values ('"+name+"',"+oid+")");
+	  db.commit();
 	  
 	  // Finally refresh the names list, and display the current image
 	  ImageViewer.this.refreshList();
@@ -372,9 +377,11 @@ public class ImageViewer implements ItemListener
       
       // Finally delete any entries for that name
       stat.executeUpdate("delete from images where imgname='"+currentImage+"'");
+      db.commit();
       
       label.setText(currentImage+" deleted");
       currentImage=null;
+      db.commit();
       refreshList();
     } catch(SQLException ex) {
       label.setText(ex.toString());
-- 
GitLab