commit-gnue
[Top][All Lists]
Advanced

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

gnue/common/src/dbdrivers/dbf DBdriver.py


From: Jan Ischebeck
Subject: gnue/common/src/dbdrivers/dbf DBdriver.py
Date: Sun, 01 Dec 2002 06:27:30 -0500

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     Jan Ischebeck <address@hidden>  02/12/01 06:27:30

Modified files:
        common/src/dbdrivers/dbf: DBdriver.py 

Log message:
        fix bugs in introspection support of DBF dbdriver

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/dbf/DBdriver.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text

Patches:
Index: gnue/common/src/dbdrivers/dbf/DBdriver.py
diff -c gnue/common/src/dbdrivers/dbf/DBdriver.py:1.2 
gnue/common/src/dbdrivers/dbf/DBdriver.py:1.3
*** gnue/common/src/dbdrivers/dbf/DBdriver.py:1.2       Sat Nov 30 19:00:59 2002
--- gnue/common/src/dbdrivers/dbf/DBdriver.py   Sun Dec  1 06:27:29 2002
***************
*** 55,64 ****
    def connect(self, connectData={}):
      try:
        GDebug.printMesg(3,'Open file: %s' % 
(connectData['directory']+connectData['dbname']))
!       self._db = dbf.dbf(connectData['directory']+connectData['dbname'])
!       self._dbname = connectData['dbname']
!       if self._dbname[-4:]=='.dbf':
!         self._dbname=self._dbname[:-4]
      except IOError:
        raise self._DatabaseError,'DBF file not found.'
      except TypeError:
--- 55,62 ----
    def connect(self, connectData={}):
      try:
        GDebug.printMesg(3,'Open file: %s' % 
(connectData['directory']+connectData['dbname']))
!       self._dataConnection = dbf.dbf(connectData['directory']+\
!                                      connectData['dbname'])
      except IOError:
        raise self._DatabaseError,'DBF file not found.'
      except TypeError:
***************
*** 66,73 ****
  
      # build field list
      self._fieldReferences=[]
!     for f in self._db.fields:
!       self._fieldReferences.append(f[0])
     
      self._postConnect()
  
--- 64,71 ----
  
      # build field list
      self._fieldReferences=[]
!     for f in self._dataConnection.fields:
!       self._fieldReferences.append(string.lower(f[0]))
     
      self._postConnect()
  
***************
*** 81,97 ****
  
    # Return a list of Schema objects
    def getSchemaList(self, type=None):
!     
!     list = [GDataObjects.Schema(attrs={'id':self._dbname,\
!                                         'name':self._dbname, \
!                                         'type':1},\
!                                  getChildSchema=self.__getFieldSchema)]
      return list
  
  
    # Find a schema object with specified name
    def getSchemaByName(self, name, type=None):
!     if name==self._dbname:
        return self.getSchemaList()
      else:
        return None
--- 79,102 ----
  
    # Return a list of Schema objects
    def getSchemaList(self, type=None):
!     tablename=self._dataConnection.fname
!     if tablename[-4:]=='.dbf':
!         tablename=tablename[:-4]
! 
!     list = [Schema(attrs={'id':tablename,\
!                           'name':tablename, \
!                           'type':1},\
!                    getChildSchema=self.__getFieldSchema)]
      return list
  
  
    # Find a schema object with specified name
    def getSchemaByName(self, name, type=None):
!     tablename=self._dataConnection.fname
!     if tablename[-4:]=='.dbf':
!         tablename=tablename[:-4]
! 
!     if name==tablename:
        return self.getSchemaList()
      else:
        return None
***************
*** 100,114 ****
    def __getFieldSchema(self, parent):
  
      list = []
!     for f in self._db.fields:
! 
! 
!       attrs={'id': "%s.%s" % (parent.id, f[0]), 'name': f[0],
               'type':'field', 'nativetype': field[1],
               'required': 0}
        if field[1] == 'C':
          attrs['datatype']='text'
!         attrs['length']=field[2]
        elif field[1] == 'N':
          attrs['datatype']='number'
        elif field[1] == 'D':
--- 105,120 ----
    def __getFieldSchema(self, parent):
  
      list = []
!     for field in self._dataConnection.fields:
!       
!       fname=string.lower(field[0])
!       
!       attrs={'id': "%s.%s" % (parent.id,fname), 'name': fname,
               'type':'field', 'nativetype': field[1],
               'required': 0}
        if field[1] == 'C':
          attrs['datatype']='text'
!         attrs['length']='%s' % field[2]
        elif field[1] == 'N':
          attrs['datatype']='number'
        elif field[1] == 'D':
***************
*** 118,124 ****
        else:
          GDebug.printMesg(1,'WARNING: dbf native type error: %s' % field[1])
  
!       list.append(GDataObjects.Schema(attrs=attrs))
  
      return list
  
--- 124,130 ----
        else:
          GDebug.printMesg(1,'WARNING: dbf native type error: %s' % field[1])
  
!       list.append(Schema(attrs=attrs))
  
      return list
  
***************
*** 155,165 ****
        return 0
      
      # Load static data
!     for row in self._dataObject._db:
        dict = {}
        c=0
!       for f in self._dataObject._db.fields:
!         dict[f[0]] = row[c]
          c+=1
  
        record=self._recordSetClass(parent=self,initialData=dict)
--- 161,171 ----
        return 0
      
      # Load static data
!     for row in self._dataObject._dataConnection:
        dict = {}
        c=0
!       for f in self._dataObject._dataConnection.fields:
!         dict[string.lower(f[0])] = row[c]
          c+=1
  
        record=self._recordSetClass(parent=self,initialData=dict)




reply via email to

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