commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue/gnue-common/src GDataObjects.py dbdrivers/...


From: Jason Cater
Subject: gnue/gnue-common/src GDataObjects.py dbdrivers/...
Date: Fri, 02 Nov 2001 14:51:55 -0500

CVSROOT:        /home/cvs
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    01/11/02 14:51:54

Modified files:
        gnue-common/src: GDataObjects.py 
        gnue-common/src/dbdrivers/_dbsig: DBdriver.py 
        gnue-common/src/dbdrivers/mysql: DBdriver.py 

Log message:
        added comments to mysql driver; added transactional support for mysql 
(if available)

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/GDataObjects.py.diff?cvsroot=OldCVS&tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/dbdrivers/_dbsig/DBdriver.py.diff?cvsroot=OldCVS&tr1=1.19&tr2=1.20&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/dbdrivers/mysql/DBdriver.py.diff?cvsroot=OldCVS&tr1=1.5&tr2=1.6&r1=text&r2=text

Patches:
Index: gnue/gnue-common/src/GDataObjects.py
diff -u gnue/gnue-common/src/GDataObjects.py:1.24 
gnue/gnue-common/src/GDataObjects.py:1.25
--- gnue/gnue-common/src/GDataObjects.py:1.24   Wed Sep 19 01:11:15 2001
+++ gnue/gnue-common/src/GDataObjects.py        Fri Nov  2 14:51:54 2001
@@ -128,7 +128,11 @@
   # client application may wish to add a handler to know when the detail
   # has been requeried.  handler is a method that takes two arguments:
   # the master ResultSet and the detail ResultSet
-  def addDetailDataObject(self, dataObject, handler=None):
+  def addDetailDataObject(self, dataObject, handler=None, **params):
+
+    for param in params.keys(): 
+      dataObject.__dict__[param] = params[param]
+
     GDebug.printMesg (1,"Adding a master/detail relationship to DataObject")
     dataObject._masterObject = self
     dataObject._masterfields = string.split(hasattr(dataObject,'masterlink') 
and \
Index: gnue/gnue-common/src/dbdrivers/_dbsig/DBdriver.py
diff -u gnue/gnue-common/src/dbdrivers/_dbsig/DBdriver.py:1.19 
gnue/gnue-common/src/dbdrivers/_dbsig/DBdriver.py:1.20
--- gnue/gnue-common/src/dbdrivers/_dbsig/DBdriver.py:1.19      Tue Sep 18 
17:58:25 2001
+++ gnue/gnue-common/src/dbdrivers/_dbsig/DBdriver.py   Fri Nov  2 14:51:54 2001
@@ -247,6 +247,7 @@
       rs._readonly = readOnly
     return rs
 
+
   def commit(self): 
     GDebug.printMesg (5,"DB-SIG database driver: commit()")
  
@@ -254,6 +255,8 @@
       self._dataConnection.commit()
     except self._DatabaseError, value:
       raise GDataObjects.ConnectionError, value
+    
+    self._beginTransaction()
 
   def rollback(self): 
     GDebug.printMesg (5,"DB-SIG database driver: rollback()")
@@ -264,6 +267,9 @@
       pass     # I'm SURE this isn't right (jcater)
                 # But not all db's support transactions
 
+    self._beginTransaction()
+
+
   def _buildQuery(self, conditions={}): 
     return None
 
@@ -322,7 +328,11 @@
       else: 
         raise GConditions.ConditionNotSupported, \
           'Condition clause "%s" is not supported by this db driver.' % otype
-      
+
+  # Code necessary to force the connection into transaction mode... 
+  # this is usually not necessary (MySQL is one of few DBs that must force)
+  def _beginTransaction(self): 
+    pass      
 
 
 class DBSIG_DataObject_Object(DBSIG_DataObject): 
Index: gnue/gnue-common/src/dbdrivers/mysql/DBdriver.py
diff -u gnue/gnue-common/src/dbdrivers/mysql/DBdriver.py:1.5 
gnue/gnue-common/src/dbdrivers/mysql/DBdriver.py:1.6
--- gnue/gnue-common/src/dbdrivers/mysql/DBdriver.py:1.5        Wed Aug 29 
20:23:12 2001
+++ gnue/gnue-common/src/dbdrivers/mysql/DBdriver.py    Fri Nov  2 14:51:54 2001
@@ -16,7 +16,7 @@
 # write to the Free Software Foundation, Inc., 59 Temple Place 
 # - Suite 330, Boston, MA 02111-1307, USA.
 #
-# Copyright 2000 Free Software Foundation
+# Copyright 2000, 2001 Free Software Foundation
 #
 # FILE:
 # mysql/DBdriver.py
@@ -25,10 +25,9 @@
 # Driver to provide access to data vi MySQL
 #
 # NOTES:
-#
-
+# Supports transactions if the MySQL server is compiled w/transaction support
+# (which it does NOT by default)
 
-import MySQLdb
 
 from string import lower
 import sys
@@ -37,7 +36,20 @@
    import DBSIG_RecordSet, DBSIG_ResultSet, DBSIG_DataObject, \
           DBSIG_DataObject_SQL, DBSIG_DataObject_Object
 
+try: 
+  import MySQLdb
+except ImportError, mesg: 
+  GDebug.printMesg(1,mesg) 
+  print "-"*79
+  print "\nCould not load MySQLdb.  For MySQL support, please install \n" \
+      + "mysql-python 0.9.0 or later " \
+      + "from http://sourceforge.net/projects/mysql-python\n";
+  print "Error:  %s" % mesg
+  print "-"*79
+  sys.exit()
+
 
+
 class MySQL_RecordSet(DBSIG_RecordSet): 
   pass    
 
@@ -67,12 +79,19 @@
     except self._DatabaseError, value:
       raise GDataObjects.ConnectionError, value
 
+    self._beginTransaction()
     self._postConnect()
 
 
   def _postConnect(self): 
     self.triggerExtensions = TriggerExtensions(self._dataConnection)
 
+
+  def _beginTransaction(self):
+    try: 
+      self._dataConnection.begin()
+    except: 
+      pass
 
 class MySQL_DataObject_Object(MySQL_DataObject, \
       DBSIG_DataObject_Object): 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]