[Top][All Lists]
[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):
- gnue/gnue-common/src GDataObjects.py dbdrivers/...,
Jason Cater <=