[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/gnuef samples/contact.gfd src/DSpostgresql...
From: |
James Thompson |
Subject: |
gnue/gnuef samples/contact.gfd src/DSpostgresql... |
Date: |
Thu, 05 Oct 2000 22:25:12 -0700 |
CVSROOT: /cvs
Module name: gnue
Changes by: James Thompson <address@hidden> 00/10/05 22:25:11
Modified files:
gnuef/samples : contact.gfd
gnuef/src : DSpostgresql.py GFForm.py GFObjects.py
UIwxpython.py
Log message:
More database related changes
CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/samples/contact.gfd.diff?r1=1.6&r2=1.7
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/DSpostgresql.py.diff?r1=1.2&r2=1.3
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/GFForm.py.diff?r1=1.12&r2=1.13
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/GFObjects.py.diff?r1=1.8&r2=1.9
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/UIwxpython.py.diff?r1=1.6&r2=1.7
Patches:
Index: gnue/gnuef/samples/contact.gfd
diff -u gnue/gnuef/samples/contact.gfd:1.6 gnue/gnuef/samples/contact.gfd:1.7
--- gnue/gnuef/samples/contact.gfd:1.6 Tue Oct 3 22:04:58 2000
+++ gnue/gnuef/samples/contact.gfd Thu Oct 5 22:25:10 2000
@@ -9,7 +9,7 @@
</options>
- <database name="gnue_data" provider="postgres" db_name="gnue"/>
+ <database name="gnue" provider="postgresql" dbname="gnue" host="gnue"/>
<dataset name="qrySomeQuery" databaseName="gnue_data"
query="select * from country;"/>
<datasource name="dtsrcCoolBeans" DataSet="qrySomeQuery"/>
Index: gnue/gnuef/src/DSpostgresql.py
diff -u gnue/gnuef/src/DSpostgresql.py:1.2 gnue/gnuef/src/DSpostgresql.py:1.3
--- gnue/gnuef/src/DSpostgresql.py:1.2 Tue Oct 3 22:04:58 2000
+++ gnue/gnuef/src/DSpostgresql.py Thu Oct 5 22:25:11 2000
@@ -13,43 +13,83 @@
#
import GFOptions
-import _pg
+import pg
+import string
class DSLink:
def __init__(self):
if GFOptions.DEBUG:
print "Postgresql database driver initializing"
pass;
-
self.connection = None
def connect(self, host, dbname, user, passwd):
if GFOptions.DEBUG:
print "connecting"
- self.connection = _pg.connect(dbname, host, -1, None, None, user, passwd)
+ self.connection = pg.DB(dbname, host, -1, None, None, user, passwd)
def disconnect(self):
self.connection.close()
-
+
def commit(self):
self.connection.commit()
def rollback(self):
self.connection.rollback()
- def query(self):
- pass;
+ def insert(self,table,mask):
+ self.connection.insert(table,mask)
+ return mask
+
+ def delete(self,table,mask):
+ self.connection.delete(table,mask)
+
+ def update(self,table,mask):
+ print "Updating %s " % (table)
+ print mask
+ mask = self.connection.update(table,mask)
+
+ def query(self,table,mask):
+ command = self.constructSQL('query',table, mask)
+ resultset = self.connection.query(command).dictresult()
+ print resultset
+ return resultset
+
+ def getResults(self):
+ return resultset
+
+ def constructSQL(self, type, table, mask = None):
+ sql = None
+ fields = None
+ qualifier = None
+
+ if type == 'query':
+ action = "SELECT "
+ location = "FROM %s " % (table)
+
+ fields = " oid AS oid_%s, %s " % (table, mask == [] and
string.join(mask.keys(), ',') or '*')
- def nextObject(self):
- pass;
+ if mask == []:
+ for fieldname in mask.keys():
+ if mask[fieldname] != None:
+ if qualifier == None:
+ qualifier = "WHERE %s LIKE '%s'" % (fieldname,mask[fieldname])
+ else:
+ qualifier = "%s AND %s LIKE %s" % (qualifier,
fieldname,mask[fieldname])
+
+ sql = action + fields + location + (qualifier and qualifier or "")
- def prevObject(self):
- pass;
+ else:
+ print "constructSQL: unsupport SQL statement type"
- def newObject(self):
- pass;
-
-
-# def defQuery(self):
+ if GFOptions.DEBUG > 50:
+ print sql
+
+ return sql
+
+
+
+
+
Index: gnue/gnuef/src/GFForm.py
diff -u gnue/gnuef/src/GFForm.py:1.12 gnue/gnuef/src/GFForm.py:1.13
--- gnue/gnuef/src/GFForm.py:1.12 Tue Oct 3 22:04:58 2000
+++ gnue/gnuef/src/GFForm.py Thu Oct 5 22:25:11 2000
@@ -43,16 +43,21 @@
'requestMODETOGGLE' : self.toggleInsertMode,
'requestPREVRECORD' : self.prevRecord,
'requestNEXTRECORD' : self.nextRecord,
+
'requestNEWRECORD' : self.newRecord,
+
+# 'requestQUERY' : self.requestQuery,
+# 'cancelQUERY' : self.requestQuery,
- 'recordSWITCHED' :self.recordSwitched,
+ 'recordSWITCHED' : self.recordSwitched,
-# 'requestLOGIN' :self.requestLogin,
- 'uiINITIALIZED' :self.uiInitialized
+# 'requestLOGIN' : self.requestLogin,
+ 'uiINITIALIZED' : self.uiInitialized
}
self.databaseDictionary = {}
+ self.datasourceDictionary = {}
# Insert/Overwrite mode
self.insertMode = 1
@@ -86,9 +91,12 @@
self.walk(self.initEntries)
# Connect to the defined databases
- self.walk(self.initDatabases)
+ self.walk(self.initDatabaseObjects)
if GFOptions.DEBUG > 50:
+ print "Database Dictionary"
print self.databaseDictionary
+ print "Datasource Dictionary"
+ print self.datasourceDictionary
#
@@ -109,14 +117,15 @@
def initBlocks(self, object):
if object.getObjectType() == 'GFBlock':
self.blockList.append(object)
- object.initDataSource()
- #object.datalink.connect()
def initEntries(self, object):
if object.getObjectType() == 'GFEntry':
object.valueArray[0] = object.value
- def initDatabases(self, object):
+ def initDatabaseObjects(self, object):
+ if object.getObjectType() =='GFDatasource':
+ self.datasourceDictionary[object.name]=object
+
if object.getObjectType() =='GFDatabase':
self.databaseDictionary[object.name]=object
@@ -249,13 +258,7 @@
# Called whenever an event source has requested that the
# focus change to the next data entry block
#
- def nextBlock(self, event):
-
-# print "Current Page", self.currentPage
-# print "Current Block", self.currentBlock
-# print "Current Entry", self.currentEntry
-
-
+ def nextBlock(self, event):
nextBlock = self.blockList[0]
keepNext = 0
for object in self.blockList:
Index: gnue/gnuef/src/GFObjects.py
diff -u gnue/gnuef/src/GFObjects.py:1.8 gnue/gnuef/src/GFObjects.py:1.9
--- gnue/gnuef/src/GFObjects.py:1.8 Tue Oct 3 22:04:58 2000
+++ gnue/gnuef/src/GFObjects.py Thu Oct 5 22:25:11 2000
@@ -30,9 +30,6 @@
self.attributes = {}
if parent :
parent.addChild(self)
-# self.root = parent.root
-# else:
-# self.root = self
def getObjectType(self):
return self.type
@@ -77,18 +74,12 @@
def __init__(self, parent=None, value=None):
self.value = value
self.type = "GFValue"
- if GFOptions.DEBUG:
- print "Value = ", self.value
GFObj.__init__(self, parent)
def setValue(self, value):
- if GFOptions.DEBUG:
- print "Value = ", self.value
self.value = value
def getValue(self):
- if GFOptions.DEBUG:
- print "Value = ", self.value
return self.value
#
@@ -142,12 +133,47 @@
GFValue.setValue(self,value)
#
+#GFDatabase
+#
+class GFDatabase(GFObj):
+ def __init__(self, parent=None):
+ GFObj.__init__(self, parent)
+ self.type = "GFDatabase"
+
+ def initialize(self,user,passwd):
+ if self.provider == "postgresql":
+ import DSpostgresql
+ self.link = DSpostgresql.DSLink()
+ self.link.connect(self.host,self.dbname,user,passwd)
+
+ def query(self, table, mask):
+ results = self.link.query(table,mask)
+ return results
+
+ def update(self, table, mask):
+ results = self.link.update(table,mask)
+ return results
+
+ def insert(self, table, mask):
+ results = self.link.insert(table,mask)
+ return results
+
+ def delete(self, table, mask):
+ self.link.insert(table,mask)
+
+
+#
#GFDataSource
#
class GFDataSource(GFObj):
def __init__(self, parent=None):
GFObj.__init__(self, parent)
self.type = "GFDataSource"
+ self.resultSet = {}
+
+ def initialize(self):
+ pass
+
#
#GFDataSet
#
@@ -156,19 +182,7 @@
GFObj.__init__(self, parent)
self.type = "GFDataSet"
-#
-#GFDatabase
-#
-class GFDatabase(GFObj):
- def __init__(self, parent=None):
- GFObj.__init__(self, parent)
- self.type = "GFDatabase"
- def initialize(self,user,passwd):
- if self.provider == "postgresql":
- import DSpostgresql
- self.link = DSpostgresql.DSLink()
- self.link.connect(self.host,self.dbname,user,passwd)
#
#
# More complex objects below
@@ -256,12 +270,12 @@
#self.dispatchEvent(GFEvent('recordCREATED',self))
- def initDataSource(self):
- try:
- self.datalink =
DSobjectServer.DSdataLink(self.__dict__["dbName"],self.__dict__["tableName"])
- except KeyError:
- print "Not tied to db"
- pass
+ #def initDataSource(self):
+ # try:
+ # self.datalink =
DSobjectServer.DSdataLink(self.__dict__["dbName"],self.__dict__["tableName"])
+ # except KeyError:
+ # print "Not tied to db"
+ # pass
Index: gnue/gnuef/src/UIwxpython.py
diff -u gnue/gnuef/src/UIwxpython.py:1.6 gnue/gnuef/src/UIwxpython.py:1.7
--- gnue/gnuef/src/UIwxpython.py:1.6 Tue Oct 3 18:19:53 2000
+++ gnue/gnuef/src/UIwxpython.py Thu Oct 5 22:25:11 2000
@@ -20,7 +20,8 @@
# The public interface to the User Interface
# All UIs must provide this class
#
-class GFUserInterface(GFUserInterfaceBase, wxApp):
+#class GFUserInterface(GFUserInterfaceBase, wxApp):
+class GFUserInterface(wxApp,GFUserInterfaceBase):
def __init__(self, form):
wxApp.__init__(self,0)
GFUserInterfaceBase.__init__(self,form)
@@ -176,6 +177,7 @@
#
# don't put code in here, put it in onInit()
#
+
return true
def nextPage(self):
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/gnuef samples/contact.gfd src/DSpostgresql...,
James Thompson <=