[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/gnuef/src/drivers geas/DBdriver.py odbc/.c...
From: |
Jade Meskill |
Subject: |
gnue/gnuef/src/drivers geas/DBdriver.py odbc/.c... |
Date: |
Fri, 22 Dec 2000 10:44:50 -0800 |
CVSROOT: /home/cvs
Module name: gnue
Changes by: Jade Meskill <address@hidden> 00/12/22 10:44:50
Modified files:
gnuef/src/drivers/geas: DBdriver.py
Added files:
gnuef/src/drivers/odbc: .cvsignore DBdriver.py __init__.py
Log message:
Added ODBC driver (has been tested only with MyODBC so far)
Updated geas driver to keep objects in memory (still not tested)
CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/drivers/geas/DBdriver.py.diff?r1=1.10&r2=1.11
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/drivers/odbc/.cvsignore.diff?r1=NONE&r2=1.1
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/drivers/odbc/DBdriver.py.diff?r1=NONE&r2=1.1
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/drivers/odbc/__init__.py.diff?r1=NONE&r2=1.1
Patches:
Index: gnue/gnuef/src/drivers/geas/DBdriver.py
diff -u gnue/gnuef/src/drivers/geas/DBdriver.py:1.10
gnue/gnuef/src/drivers/geas/DBdriver.py:1.11
--- gnue/gnuef/src/drivers/geas/DBdriver.py:1.10 Sun Nov 19 22:55:10 2000
+++ gnue/gnuef/src/drivers/geas/DBdriver.py Fri Dec 22 10:44:49 2000
@@ -1,7 +1,7 @@
#
# GEAS database driver
#
-# $Id: DBdriver.py,v 1.10 2000/11/20 06:55:10 jmeskill Exp $
+# $Id: DBdriver.py,v 1.11 2000/12/22 18:44:49 jmeskill Exp $
#
import sys
@@ -32,6 +32,8 @@
self.ior = None
self.factory = None
self.uniqueKey = "objectID"
+ self.fieldlist = []
+ self.objlist = {}
def connect(self, host, dbname, user, passwd):
# find the object server base object
@@ -86,6 +88,7 @@
def query(self, table, mask = None, order_by=None):
(objectID, mask) = self.filterMask(mask)
+ self.objlist = {}
rs = []
if mask or objectID:
@@ -109,14 +112,8 @@
if self.data:
for obj in self.data.objects:
- r = {}
- fields = self.getFieldList(table)
-
- # add objectID into field list
- r[self.uniqueKey] = obj.objectID
- for f in fields.keys():
- r[f] = obj.getField(f)
-
+ self.objlist[obj.objectID] = obj
+ r = self.buildMask(obj)
rs.append(r)
return rs
@@ -137,36 +134,38 @@
mask["objectID"] = obj.objectID
+ self.objlist[obj.objectID] = obj
+
return mask
def delete(self,table,mask):
(objectID, mask) = self.filterMask(mask)
- objs = self.database.loadObjects(table, "objectID", str(objectID))
- if objs:
- obj = objs.objects[0]
+ obj = self.objlist[objectID]
+ if obj:
obj.delete()
obj.flush()
def update(self,table,mask):
(objectID, mask) = self.filterMask(mask)
- objs = self.database.loadObjects(table, "objectID", str(objectID))
- if objs:
- obj = objs.objects[0]
+ obj = self.objlist[objectID]
+ if obj:
for k in mask.keys():
obj.setField(k, mask[k])
obj.flush()
- return self.query(table, {"objectID" : objectID})
+ return [self.buildMask(obj)]
def getFieldList(self,table):
list = {}
+ self.fieldlist = {}
cd = self.database.getFullClassDefinition(table)
if cd:
for field in cd.fields:
if field.type == 1:
list[field.name] = field.type
+ self.fieldlist = list
return list
def getUniqueKey(self, table):
@@ -182,6 +181,15 @@
nmask[k] = mask[k]
return (objectID, nmask)
+
+ def buildMask(self, obj):
+ r = {}
+ # add objectID into field list
+ r[self.uniqueKey] = obj.objectID
+ for f in self.fieldlist.keys():
+ r[f] = obj.getField(f)
+
+ return r
def _make_passkey(self, user, passwd, random):
m = md5.new(user + '-' + passwd + '-' + random)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/gnuef/src/drivers geas/DBdriver.py odbc/.c...,
Jade Meskill <=