[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue appserver/samples/Makefile common/utils/xm...
From: |
Jan Ischebeck |
Subject: |
gnue appserver/samples/Makefile common/utils/xm... |
Date: |
Sun, 28 Jul 2002 06:42:43 -0400 |
CVSROOT: /cvsroot/gnue
Module name: gnue
Changes by: Jan Ischebeck <address@hidden> 02/07/28 06:42:41
Modified files:
appserver/samples: Makefile
common/utils/xml2sql: Makefile.sample
common/src/dbdrivers/interbase: DBdriver.py
Added files:
common/utils/xml2sql: interbase.xsl
Log message:
changes to interbase/DBdriver.py (add primary key etc) [closing Ticket
#116]
adding interbase.xsl [closing Ticket #117]
changing Makefiles to use interbase.xsl
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/samples/Makefile.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/utils/xml2sql/interbase.xsl?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/utils/xml2sql/Makefile.sample.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/interbase/DBdriver.py.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
Patches:
Index: gnue/appserver/samples/Makefile
diff -c gnue/appserver/samples/Makefile:1.3 gnue/appserver/samples/Makefile:1.4
*** gnue/appserver/samples/Makefile:1.3 Tue Jul 23 17:40:21 2002
--- gnue/appserver/samples/Makefile Sun Jul 28 06:42:41 2002
***************
*** 5,11 ****
src = sample.gsd
! all: mysql pgsql mssql sybase html
mysql:
--- 5,11 ----
src = sample.gsd
! all: mysql pgsql mssql sybase interbase html
mysql:
***************
*** 23,28 ****
--- 23,32 ----
${xsltcmd} ${xslpath}sybase.xsl ${src} sybase.xml
${xsltcmd} ${xslpath}strip.command.xsl sybase.xml sybase.sql
+ interbase:
+ ${xsltcmd} ${xslpath}interbase.xsl ${src} interbase.xml
+ ${xsltcmd} ${xslpath}strip.command.xsl interbase.xml interbase.sql
+
html:
${xsltcmd} ${xslpath}display.xsl ${src} sample.html
Index: gnue/common/src/dbdrivers/interbase/DBdriver.py
diff -c gnue/common/src/dbdrivers/interbase/DBdriver.py:1.10
gnue/common/src/dbdrivers/interbase/DBdriver.py:1.11
*** gnue/common/src/dbdrivers/interbase/DBdriver.py:1.10 Fri May 31
14:12:33 2002
--- gnue/common/src/dbdrivers/interbase/DBdriver.py Sun Jul 28 06:42:41 2002
***************
*** 23,29 ****
#
# DESCRIPTION:
# Driver to provide access to data via the Kinterbasdb Interbase/Firebird
Python Driver
! # Requires Kinterbasdb 3.0 (http://kinterbasdb.sourceforge.net/)
#
# NOTES:
#
--- 23,29 ----
#
# DESCRIPTION:
# Driver to provide access to data via the Kinterbasdb Interbase/Firebird
Python Driver
! # Requires Kinterbasdb > 3.0 (http://kinterbasdb.sourceforge.net/)
#
# NOTES:
#
***************
*** 59,111 ****
cursor, defaultValues, masterRecordSet)
self._recordSetClass = Interbase_RecordSet
- # Override the base _loadNextRecord as the fetchmany() from the cursor
- # returns an exception instead of an empty sequence.
- # TODO: will be unneeded when next (>3.0) kinterbasdb release comes out
- # TODO: in the kinterbasdb CVS the fetchmany() error has been fixed yet
(btami)
- def _loadNextRecord(self):
- if self._cursor:
- rs = None
-
- try:
- rsets = self._cursor.fetchmany()
- except self._dataObject._DatabaseError, err:
- rsets = None
- except:
- rsets = None
-
- if rsets and len(rsets):
- for rs in(rsets):
- if rs:
- i = 0
- dict = {}
- for f in (rs):
- dict[lower(self._fieldNames[i])] = f
- i += 1
- self._cachedRecords.append (self._recordSetClass(parent=self, \
-
initialData=dict))
- else:
- return 0
- return 1
- else:
- return 0
- else:
- return 0
-
class Interbase_DataObject(DBSIG_DataObject):
def __init__(self):
DBSIG_DataObject.__init__(self)
self._DatabaseError = SIG2api.DatabaseError
self._resultSetClass = Interbase_ResultSet
!
def connect(self, connectData={}):
GDebug.printMesg(1,"Interbase database driver initializing")
try:
self._dataConnection = SIG2api.connect( \
user=connectData['_username'], \
password=connectData['_password'], \
database=connectData['dbname'], \
host=connectData['host'])
except self._DatabaseError, value:
--- 59,85 ----
cursor, defaultValues, masterRecordSet)
self._recordSetClass = Interbase_RecordSet
class Interbase_DataObject(DBSIG_DataObject):
def __init__(self):
DBSIG_DataObject.__init__(self)
self._DatabaseError = SIG2api.DatabaseError
self._resultSetClass = Interbase_ResultSet
! self._primaryKeyFields = []
def connect(self, connectData={}):
GDebug.printMesg(1,"Interbase database driver initializing")
+
+ try:
+ charset = connectData['charset']
+ except KeyError:
+ charset = ""
+
try:
self._dataConnection = SIG2api.connect( \
user=connectData['_username'], \
password=connectData['_password'], \
+ charset=charset, \
database=connectData['dbname'], \
host=connectData['host'])
except self._DatabaseError, value:
***************
*** 139,145 ****
list = []
for rs in cursor.fetchall():
list.append(GDataObjects.Schema(attrs={'id':rs[0], 'name':rstrip(rs[0]),
! 'type':'table'},
getChildSchema=self.__getFieldSchema))
cursor.close()
--- 113,120 ----
list = []
for rs in cursor.fetchall():
list.append(GDataObjects.Schema(attrs={'id':rs[0], 'name':rstrip(rs[0]),
! 'type':'table',
! 'primarykey': self.__getPrimaryKey(rstrip(rs[0]))},
getChildSchema=self.__getFieldSchema))
cursor.close()
***************
*** 158,164 ****
rs = cursor.fetchone()
if rs:
schema = GDataObjects.Schema(attrs={'id':rs[0], 'name':rstrip(rs[0]),
! 'type':'table'},
getChildSchema=self.__getFieldSchema)
else:
schema = None
--- 133,140 ----
rs = cursor.fetchone()
if rs:
schema = GDataObjects.Schema(attrs={'id':rs[0], 'name':rstrip(rs[0]),
! 'type':'table',
! 'primarykey': self.__getPrimaryKey(rstrip(rs[0]))},
getChildSchema=self.__getFieldSchema)
else:
schema = None
***************
*** 166,184 ****
cursor.close()
return schema
# Get fields for a table
def __getFieldSchema(self, parent):
- # statement = "select a.rdb$field_name,a.rdb$null_flag,"+\
- # "c.rdb$type_name,"+\
- # "b.rdb$field_length, "+\
- # "b.rdb$field_scale "+\
- # "from rdb$relation_fields a, rdb$fields b, rdb$types c
"+\
- # "where c.rdb$field_name='RDB$FIELD_TYPE' and "+\
- # "c.rdb$type=b.rdb$field_type and "+\
- # "b.rdb$field_name=a.rdb$field_source and "+\
- # "a.rdb$relation_name= '%s'"%(parent.name)
-
statement = "select * from %s"%(parent.name) + " where (0=1)"
cursor = self._dataConnection.cursor()
--- 142,170 ----
cursor.close()
return schema
+ # Return a list of fields (for _buildDeleteStatement and for
_buildUpdateStatement)
+ def __getPrimaryKey(self, relname):
+ statement = "select rdb$relation_name, rdb$field_name, "+\
+ "rdb$constraint_name, rdb$field_position "+\
+ "from rdb$relation_constraints rc,
rdb$index_segments ri "+\
+ "where ri.rdb$index_name =
rc.rdb$index_name "+\
+ "and rc.rdb$constraint_type =
'PRIMARY KEY' "+\
+ "and rc.rdb$relation_name = '%s' "
% (relname)+\
+ "order by ri.rdb$field_position"
+
+ cursor = self._dataConnection.cursor()
+ cursor.execute(statement)
+
+ list = []
+ for rs in cursor.fetchall():
+ list.append(lower(rstrip(rs[1])))
+
+ cursor.close()
+ return list
+
# Get fields for a table
def __getFieldSchema(self, parent):
statement = "select * from %s"%(parent.name) + " where (0=1)"
cursor = self._dataConnection.cursor()
***************
*** 186,208 ****
list = []
- # for rs in cursor.fetchall():
- # nativetype = rstrip(rs[2])
- #
- # attrs={'id': rs[0], 'name': lower(rstrip(rs[0])),
- # 'type':'field', 'nativetype': nativetype,
- # 'required': rs[1]==1, 'length': rs[3] }
- #
- # if nativetype in ('SHORT','LONG','QUAD','FLOAT','DOUBLE'):
- # attrs['datatype']='number'
- # attrs['precision'] = rs[4]
- # elif nativetype in ('DATE','TIME','TIMESTAMP'):
- # attrs['datatype']='date'
- # else:
- # attrs['datatype']='text'
-
for d in cursor.description:
! nativetype = lower(d[SIG2api.DESCRIPTION_TYPE_CODE].__name__)
attrs={'id':d[SIG2api.DESCRIPTION_NAME],
'name':lower(d[SIG2api.DESCRIPTION_NAME]),
--- 172,182 ----
list = []
for d in cursor.description:
! try:
! nativetype = lower(d[SIG2api.DESCRIPTION_TYPE_CODE].__name__)
! except AttributeError:
! nativetype='unknown'
attrs={'id':d[SIG2api.DESCRIPTION_NAME],
'name':lower(d[SIG2api.DESCRIPTION_NAME]),
Index: gnue/common/utils/xml2sql/Makefile.sample
diff -c gnue/common/utils/xml2sql/Makefile.sample:1.3
gnue/common/utils/xml2sql/Makefile.sample:1.4
*** gnue/common/utils/xml2sql/Makefile.sample:1.3 Fri Jul 26 10:57:31 2002
--- gnue/common/utils/xml2sql/Makefile.sample Sun Jul 28 06:42:41 2002
***************
*** 5,11 ****
src = example.gsd
! all: mysql pgsql mssql sybase html
mysql:
--- 5,11 ----
src = example.gsd
! all: mysql pgsql mssql sybase interbase html
mysql:
***************
*** 23,28 ****
--- 23,32 ----
${xsltcmd} ${xslpath}sybase.xsl ${src} sybase.xml
${xsltcmd} ${xslpath}strip.command.xsl sybase.xml sybase.sql
+ interbase:
+ ${xsltcmd} ${xslpath}interbase.xsl ${src} interbase.xml
+ ${xsltcmd} ${xslpath}strip.command.xsl interbase.xml interbase.sql
+
html:
${xsltcmd} ${xslpath}display.xsl ${src} sample.html