commit-gnue
[Top][All Lists]
Advanced

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

gnue common/src/GDataObjects.py common/src/GDat...


From: James Thompson
Subject: gnue common/src/GDataObjects.py common/src/GDat...
Date: Wed, 06 Nov 2002 14:13:17 -0500

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     James Thompson <address@hidden> 02/11/06 14:13:16

Modified files:
        common/src     : GDataObjects.py GDataSource.py 
        common/src/dbdrivers/_dbsig: DBdriver.py 
        common/src/dbdrivers/_empty: DBdriver.py 
        common/src/dbdrivers/_static: DBdriver.py 
        common/src/dbdrivers/configfile: DBdriver.py 
        common/src/dbdrivers/cxoracle: DBdriver.py 
        common/src/dbdrivers/popy: DBdriver.py 
        common/src/dbdrivers/postgresql: DBdriver.py 
        common/src/dbdrivers/pypgsql: DBdriver.py 
        common/src/dbdrivers/sapdb: DBdriver.py 
        common/src/dbdrivers/sqlite: DBdriver.py 
        common/src/dbdrivers/sqlrelay: DBdriver.py 
        common/src/dbdrivers/sybase: DBdriver.py 
        forms/src      : GFInstance.py 
        forms/src/GFObjects: GFBlock.py 

Log message:
        query by detail support (needs more testing)

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/GDataObjects.py.diff?tr1=1.56&tr2=1.57&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/GDataSource.py.diff?tr1=1.45&tr2=1.46&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/_dbsig/DBdriver.py.diff?tr1=1.59&tr2=1.60&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/_empty/DBdriver.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/_static/DBdriver.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/configfile/DBdriver.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/cxoracle/DBdriver.py.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/popy/DBdriver.py.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/postgresql/DBdriver.py.diff?tr1=1.32&tr2=1.33&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/pypgsql/DBdriver.py.diff?tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/sapdb/DBdriver.py.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/sqlite/DBdriver.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/sqlrelay/DBdriver.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/sybase/DBdriver.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFInstance.py.diff?tr1=1.63&tr2=1.64&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFObjects/GFBlock.py.diff?tr1=1.60&tr2=1.61&r1=text&r2=text

Patches:
Index: gnue/common/src/GDataObjects.py
diff -c gnue/common/src/GDataObjects.py:1.56 
gnue/common/src/GDataObjects.py:1.57
*** gnue/common/src/GDataObjects.py:1.56        Tue Nov  5 21:03:42 2002
--- gnue/common/src/GDataObjects.py     Wed Nov  6 14:13:15 2002
***************
*** 121,130 ****
      return self._masterObject != None
  
    # Do not over-ride by vendor code
!   def createResultSet(self, conditions={}, readOnly=0, masterRecordSet=None):
      return self._createResultSet(
         GConditions.combineConditions(conditions, self._staticCondition),
!        readOnly=readOnly, masterRecordSet=masterRecordSet)
    
    # Designed to be replaced by vendor-specific code
    def _createResultSet(self, conditions={}, readOnly=0, masterRecordSet=None):
--- 121,130 ----
      return self._masterObject != None
  
    # Do not over-ride by vendor code
!   def createResultSet(self, conditions={}, readOnly=0, masterRecordSet=None, 
sql=""):
      return self._createResultSet(
         GConditions.combineConditions(conditions, self._staticCondition),
!        readOnly=readOnly, masterRecordSet=masterRecordSet, sql=sql)
    
    # Designed to be replaced by vendor-specific code
    def _createResultSet(self, conditions={}, readOnly=0, masterRecordSet=None):
Index: gnue/common/src/GDataSource.py
diff -c gnue/common/src/GDataSource.py:1.45 gnue/common/src/GDataSource.py:1.46
*** gnue/common/src/GDataSource.py:1.45 Tue Nov  5 21:03:42 2002
--- gnue/common/src/GDataSource.py      Wed Nov  6 14:13:15 2002
***************
*** 237,244 ****
    def hasMaster(self):
      return self._dataObject != None and self._dataObject.hasMaster()
  
!   def createResultSet(self, conditions={}, readOnly=0):
!       resultSet= self._dataObject.createResultSet(conditions,readOnly)
        self.__setResultSet( resultSet )
        return resultSet
  
--- 237,244 ----
    def hasMaster(self):
      return self._dataObject != None and self._dataObject.hasMaster()
  
!   def createResultSet(self, conditions={}, readOnly=0, sql=""):
!       resultSet= self._dataObject.createResultSet(conditions,readOnly,sql=sql)
        self.__setResultSet( resultSet )
        return resultSet
  
Index: gnue/common/src/dbdrivers/_dbsig/DBdriver.py
diff -c gnue/common/src/dbdrivers/_dbsig/DBdriver.py:1.59 
gnue/common/src/dbdrivers/_dbsig/DBdriver.py:1.60
*** gnue/common/src/dbdrivers/_dbsig/DBdriver.py:1.59   Tue Nov  5 21:03:42 2002
--- gnue/common/src/dbdrivers/_dbsig/DBdriver.py        Wed Nov  6 14:13:16 2002
***************
*** 264,270 ****
      self._primaryIdChecked = 1
  
  
!   def _createResultSet(self, conditions={}, readOnly=0, masterRecordSet=None):
  
      # Used by drivers with a unique id (like rowid)
      if not self._primaryIdChecked: self._checkForPrimaryId()
--- 264,270 ----
      self._primaryIdChecked = 1
  
  
!   def _createResultSet(self, conditions={}, readOnly=0, 
masterRecordSet=None,sql=""):
  
      # Used by drivers with a unique id (like rowid)
      if not self._primaryIdChecked: self._checkForPrimaryId()
***************
*** 274,283 ****
  
        # pull a record count for the upcomming query
        if self._strictQueryCount:
!         recordCount = self._getQueryCount(conditions)
          
        cursor.arraysize = self.cache
!       cursor.execute(self._buildQuery(conditions))
  
      except self._DatabaseError, err:
        raise GDataObjects.ConnectionError, err
--- 274,283 ----
  
        # pull a record count for the upcomming query
        if self._strictQueryCount:
!         recordCount = self._getQueryCount(conditions,sql)
          
        cursor.arraysize = self.cache
!       cursor.execute(self._buildQuery(conditions,additionalSQL=sql))
  
      except self._DatabaseError, err:
        raise GDataObjects.ConnectionError, err
***************
*** 290,299 ****
  
      return rs
  
!   def _getQueryCount(self,conditions={}):
      cursor = self._dataConnection.cursor()
  
!     cursor.execute(self._buildQueryCount(conditions))
      rs = cursor.fetchone()
      return int(rs[0])
  
--- 290,299 ----
  
      return rs
  
!   def _getQueryCount(self,conditions={},sql=""):
      cursor = self._dataConnection.cursor()
  
!     cursor.execute(self._buildQueryCount(conditions,sql))
      rs = cursor.fetchone()
      return int(rs[0])
  
***************
*** 531,537 ****
        if len(whereClause):
          whereClause += ' and %s' % (additionalSQL)
        else:
!         whereClause = 'WHERE %s' % (additionalSQL)
        
      if forDetail:
        q = "%s in (SELECT %s FROM %s%s)" % \
--- 531,537 ----
        if len(whereClause):
          whereClause += ' and %s' % (additionalSQL)
        else:
!         whereClause = ' WHERE %s' % (additionalSQL)
        
      if forDetail:
        q = "%s in (SELECT %s FROM %s%s)" % \
***************
*** 547,566 ****
        q = "SELECT %s* FROM %s%s" % (self.distinct, self.table,
                          whereClause)
  
!     if hasattr(self,'order_by'):
       q = "%s ORDER BY %s " % (q, self.order_by)
  
      GDebug.printMesg(5,q)
  
      return q
  
!   def _buildQueryCount(self, conditions={}):
      if self.distinct:
        distinct = "distinct "
      else:
        distinct = ""
  
!     q = "SELECT count(*) FROM %s%s" % (self.table, 
self._conditionToSQL(conditions))
  
      GDebug.printMesg(5,q)
  
--- 547,574 ----
        q = "SELECT %s* FROM %s%s" % (self.distinct, self.table,
                          whereClause)
  
!     if hasattr(self,'order_by') and not forDetail:
       q = "%s ORDER BY %s " % (q, self.order_by)
  
      GDebug.printMesg(5,q)
  
      return q
  
!   def _buildQueryCount(self, conditions={}, additionalSQL=""):
      if self.distinct:
        distinct = "distinct "
      else:
        distinct = ""
  
!     whereClause = self._conditionToSQL(conditions)
!     if additionalSQL:
!       if len(whereClause):
!         whereClause += ' and %s' % (additionalSQL)
!       else:
!         whereClause = ' WHERE %s' % (additionalSQL)
! 
! 
!     q = "SELECT count(*) FROM %s%s" % (self.table, whereClause)
  
      GDebug.printMesg(5,q)
  
Index: gnue/common/src/dbdrivers/_empty/DBdriver.py
diff -c gnue/common/src/dbdrivers/_empty/DBdriver.py:1.3 
gnue/common/src/dbdrivers/_empty/DBdriver.py:1.4
*** gnue/common/src/dbdrivers/_empty/DBdriver.py:1.3    Mon Sep 17 17:31:12 2001
--- gnue/common/src/dbdrivers/_empty/DBdriver.py        Wed Nov  6 14:13:16 2002
***************
*** 45,51 ****
      DataObject.__init__(self)
      self.triggerExtensions = TriggerExtensions(self)
  
!   def _createResultSet(self, conditions={}, readOnly=0, 
masterRecordSet=None): 
      return NIL_ResultSet(self, masterRecordSet=masterRecordSet)
  
    # We don't do logins
--- 45,51 ----
      DataObject.__init__(self)
      self.triggerExtensions = TriggerExtensions(self)
  
!   def _createResultSet(self, conditions={}, readOnly=0, masterRecordSet=None, 
sql=""): 
      return NIL_ResultSet(self, masterRecordSet=masterRecordSet)
  
    # We don't do logins
Index: gnue/common/src/dbdrivers/_static/DBdriver.py
diff -c gnue/common/src/dbdrivers/_static/DBdriver.py:1.5 
gnue/common/src/dbdrivers/_static/DBdriver.py:1.6
*** gnue/common/src/dbdrivers/_static/DBdriver.py:1.5   Tue Oct  8 16:39:19 2002
--- gnue/common/src/dbdrivers/_static/DBdriver.py       Wed Nov  6 14:13:16 2002
***************
*** 45,51 ****
      self.triggerExtensions = TriggerExtensions(self)
  
    
!   def _createResultSet(self, conditions={}, readOnly=0, masterRecordSet=None):
      return STATIC_ResultSet(self, masterRecordSet=masterRecordSet)
  
    # We don't do logins
--- 45,51 ----
      self.triggerExtensions = TriggerExtensions(self)
  
    
!   def _createResultSet(self, conditions={}, readOnly=0, masterRecordSet=None, 
sql=""):
      return STATIC_ResultSet(self, masterRecordSet=masterRecordSet)
  
    # We don't do logins
Index: gnue/common/src/dbdrivers/configfile/DBdriver.py
diff -c gnue/common/src/dbdrivers/configfile/DBdriver.py:1.2 
gnue/common/src/dbdrivers/configfile/DBdriver.py:1.3
*** gnue/common/src/dbdrivers/configfile/DBdriver.py:1.2        Wed Oct  9 
17:22:05 2002
--- gnue/common/src/dbdrivers/configfile/DBdriver.py    Wed Nov  6 14:13:16 2002
***************
*** 293,299 ****
    
  
    def _createResultSet(self, conditions=None, readOnly=0,
!                        masterRecordSet=None):
      
      if conditions!=None:
        raise GDataObjects.ConnectionError, "This database driver always 
shows"+\
--- 293,299 ----
    
  
    def _createResultSet(self, conditions=None, readOnly=0,
!                        masterRecordSet=None,sql=""):
      
      if conditions!=None:
        raise GDataObjects.ConnectionError, "This database driver always 
shows"+\
Index: gnue/common/src/dbdrivers/cxoracle/DBdriver.py
diff -c gnue/common/src/dbdrivers/cxoracle/DBdriver.py:1.12 
gnue/common/src/dbdrivers/cxoracle/DBdriver.py:1.13
*** gnue/common/src/dbdrivers/cxoracle/DBdriver.py:1.12 Mon May  6 12:07:58 2002
--- gnue/common/src/dbdrivers/cxoracle/DBdriver.py      Wed Nov  6 14:13:16 2002
***************
*** 91,98 ****
      self._primaryIdChecked = 0
  
  
!   def _buildQuery(self, conditions={}):
!     return DBSIG_DataObject_Object._buildQuery(self, conditions)
  
    def _checkForPrimaryId(self):
  
--- 91,98 ----
      self._primaryIdChecked = 0
  
  
!   def _buildQuery(self, conditions={},sql=""):
!     return DBSIG_DataObject_Object._buildQuery(self, conditions,sql)
  
    def _checkForPrimaryId(self):
  
Index: gnue/common/src/dbdrivers/popy/DBdriver.py
diff -c gnue/common/src/dbdrivers/popy/DBdriver.py:1.11 
gnue/common/src/dbdrivers/popy/DBdriver.py:1.12
*** gnue/common/src/dbdrivers/popy/DBdriver.py:1.11     Fri Jan  4 19:36:38 2002
--- gnue/common/src/dbdrivers/popy/DBdriver.py  Wed Nov  6 14:13:16 2002
***************
*** 83,90 ****
  #    PGSQL_DataObject_Object.__init__(self) 
      PG_DataObject.__init__(self)
  
!   def _buildQuery(self, conditions={}): 
!     return PGSQL_DataObject_Object._buildQuery(self, conditions)
  
  
  class PG_DataObject_SQL(PG_DataObject, \
--- 83,90 ----
  #    PGSQL_DataObject_Object.__init__(self) 
      PG_DataObject.__init__(self)
  
!   def _buildQuery(self, conditions={},sql=""): 
!     return PGSQL_DataObject_Object._buildQuery(self, conditions, sql="")
  
  
  class PG_DataObject_SQL(PG_DataObject, \
Index: gnue/common/src/dbdrivers/postgresql/DBdriver.py
diff -c gnue/common/src/dbdrivers/postgresql/DBdriver.py:1.32 
gnue/common/src/dbdrivers/postgresql/DBdriver.py:1.33
*** gnue/common/src/dbdrivers/postgresql/DBdriver.py:1.32       Mon May  6 
12:24:53 2002
--- gnue/common/src/dbdrivers/postgresql/DBdriver.py    Wed Nov  6 14:13:16 2002
***************
*** 93,100 ****
      PGSQL_DataObject_Object.__init__(self)
      PG_DataObject.__init__(self)
  
!   def _buildQuery(self, conditions={}):
!         return PGSQL_DataObject_Object._buildQuery(self, conditions)
        
  class PG_DataObject_SQL(PG_DataObject, PGSQL_DataObject_SQL):
    def __init__(self):
--- 93,100 ----
      PGSQL_DataObject_Object.__init__(self)
      PG_DataObject.__init__(self)
  
!   def _buildQuery(self, conditions={},sq;=""):
!         return PGSQL_DataObject_Object._buildQuery(self, conditions,sql)
        
  class PG_DataObject_SQL(PG_DataObject, PGSQL_DataObject_SQL):
    def __init__(self):
Index: gnue/common/src/dbdrivers/pypgsql/DBdriver.py
diff -c gnue/common/src/dbdrivers/pypgsql/DBdriver.py:1.24 
gnue/common/src/dbdrivers/pypgsql/DBdriver.py:1.25
*** gnue/common/src/dbdrivers/pypgsql/DBdriver.py:1.24  Sun Mar 31 15:41:20 2002
--- gnue/common/src/dbdrivers/pypgsql/DBdriver.py       Wed Nov  6 14:13:16 2002
***************
*** 94,101 ****
      # some of its values
      PG_DataObject.__init__(self)
  
!   def _buildQuery(self, conditions={}):
!     return PGSQL_DataObject_Object._buildQuery(self, conditions)
  
  
  class PG_DataObject_SQL(PG_DataObject, \
--- 94,101 ----
      # some of its values
      PG_DataObject.__init__(self)
  
!   def _buildQuery(self, conditions={},sql=""):
!     return PGSQL_DataObject_Object._buildQuery(self, conditions,sql)
  
  
  class PG_DataObject_SQL(PG_DataObject, \
Index: gnue/common/src/dbdrivers/sapdb/DBdriver.py
diff -c gnue/common/src/dbdrivers/sapdb/DBdriver.py:1.10 
gnue/common/src/dbdrivers/sapdb/DBdriver.py:1.11
*** gnue/common/src/dbdrivers/sapdb/DBdriver.py:1.10    Tue Oct  8 00:20:24 2002
--- gnue/common/src/dbdrivers/sapdb/DBdriver.py Wed Nov  6 14:13:16 2002
***************
*** 263,270 ****
    def __init__(self):
      SAP_DataObject.__init__(self)
  
!   def _buildQuery(self, conditions={}):
!     return DBSIG_DataObject_Object._buildQuery(self, conditions)
  
  
  class SAP_DataObject_SQL(SAP_DataObject, \
--- 263,270 ----
    def __init__(self):
      SAP_DataObject.__init__(self)
  
!   def _buildQuery(self, conditions={},sql=""):
!     return DBSIG_DataObject_Object._buildQuery(self, conditions,sql)
  
  
  class SAP_DataObject_SQL(SAP_DataObject, \
Index: gnue/common/src/dbdrivers/sqlite/DBdriver.py
diff -c gnue/common/src/dbdrivers/sqlite/DBdriver.py:1.2 
gnue/common/src/dbdrivers/sqlite/DBdriver.py:1.3
*** gnue/common/src/dbdrivers/sqlite/DBdriver.py:1.2    Tue Sep 24 09:35:06 2002
--- gnue/common/src/dbdrivers/sqlite/DBdriver.py        Wed Nov  6 14:13:16 2002
***************
*** 230,237 ****
    def __init__(self):
      SQLite_DataObject.__init__(self)
  
!   def _buildQuery(self, conditions={}):
!     return DBSIG_DataObject_Object._buildQuery(self, conditions)
  
  
  class SQLite_DataObject_SQL(SQLite_DataObject, \
--- 230,237 ----
    def __init__(self):
      SQLite_DataObject.__init__(self)
  
!   def _buildQuery(self, conditions={},sql=""):
!     return DBSIG_DataObject_Object._buildQuery(self, conditions,sql)
  
  
  class SQLite_DataObject_SQL(SQLite_DataObject, \
Index: gnue/common/src/dbdrivers/sqlrelay/DBdriver.py
diff -c gnue/common/src/dbdrivers/sqlrelay/DBdriver.py:1.4 
gnue/common/src/dbdrivers/sqlrelay/DBdriver.py:1.5
*** gnue/common/src/dbdrivers/sqlrelay/DBdriver.py:1.4  Mon May  6 12:24:54 2002
--- gnue/common/src/dbdrivers/sqlrelay/DBdriver.py      Wed Nov  6 14:13:16 2002
***************
*** 120,127 ****
    def __init__(self):
      SQLRelay_DataObject.__init__(self)
  
!   def _buildQuery(self, conditions={}):
!     return DBSIG_DataObject_Object._buildQuery(self, conditions)
  
  
  class SQLRelay_DataObject_SQL(SQLRelay_DataObject, \
--- 120,127 ----
    def __init__(self):
      SQLRelay_DataObject.__init__(self)
  
!   def _buildQuery(self, conditions={},sql=""):
!     return DBSIG_DataObject_Object._buildQuery(self, conditions,sql)
  
  
  class SQLRelay_DataObject_SQL(SQLRelay_DataObject, \
Index: gnue/common/src/dbdrivers/sybase/DBdriver.py
diff -c gnue/common/src/dbdrivers/sybase/DBdriver.py:1.6 
gnue/common/src/dbdrivers/sybase/DBdriver.py:1.7
*** gnue/common/src/dbdrivers/sybase/DBdriver.py:1.6    Mon May  6 12:24:53 2002
--- gnue/common/src/dbdrivers/sybase/DBdriver.py        Wed Nov  6 14:13:16 2002
***************
*** 119,126 ****
    def __init__(self):
      Sybase_DataObject.__init__(self)
  
!   def _buildQuery(self, conditions={}):
!     return DBSIG_DataObject_Object._buildQuery(self, conditions)
  
  
  class Sybase_DataObject_SQL(Sybase_DataObject, \
--- 119,126 ----
    def __init__(self):
      Sybase_DataObject.__init__(self)
  
!   def _buildQuery(self, conditions={},sql=""):
!     return DBSIG_DataObject_Object._buildQuery(self, conditions,sql)
  
  
  class Sybase_DataObject_SQL(Sybase_DataObject, \
Index: gnue/forms/src/GFInstance.py
diff -c gnue/forms/src/GFInstance.py:1.63 gnue/forms/src/GFInstance.py:1.64
*** gnue/forms/src/GFInstance.py:1.63   Tue Nov  5 21:03:43 2002
--- gnue/forms/src/GFInstance.py        Wed Nov  6 14:13:16 2002
***************
*** 521,530 ****
      if not self._form.endEditing():
        return
      
!     if hasattr(self._form._currentBlock._dataSourceLink,"master"):
!       messageBox = GFMsgBox(self, _("Query from detail blocks currently not 
supported"))
!       messageBox.show()
!       return
  
      message = self._form.prepQuery()
  
--- 521,530 ----
      if not self._form.endEditing():
        return
      
! #    if hasattr(self._form._currentBlock._dataSourceLink,"master"):
! #      messageBox = GFMsgBox(self, _("Query from detail blocks currently not 
supported"))
! #      messageBox.show()
! #      return
  
      message = self._form.prepQuery()
  
Index: gnue/forms/src/GFObjects/GFBlock.py
diff -c gnue/forms/src/GFObjects/GFBlock.py:1.60 
gnue/forms/src/GFObjects/GFBlock.py:1.61
*** gnue/forms/src/GFObjects/GFBlock.py:1.60    Tue Nov  5 21:03:43 2002
--- gnue/forms/src/GFObjects/GFBlock.py Wed Nov  6 14:13:16 2002
***************
*** 342,348 ****
        for block in self._form._blockList:
          block._query2 = 0
          block._queryValues = {}
!         block._queryValues.update(self._lastQueryValues)
          block.switchRecord(0)
      else:
        for block in self._form._blockList:
--- 342,348 ----
        for block in self._form._blockList:
          block._query2 = 0
          block._queryValues = {}
!         block._queryValues.update(block._lastQueryValues)
          block.switchRecord(0)
      else:
        for block in self._form._blockList:
***************
*** 351,389 ****
  
                  
    def processQuery(self):
! ##     for block in self._form._blockList:
! ##       if block._queryValues.keys():
! ##         print "Need to query", block.name
! ##         if block._dataSourceLink._dataObject._masterObject:
! ##           block._lastQueryValues = {}
! ##           block._lastQueryValues.update(block._queryValues)
! ##           conditions = _generateConditional(block)
! ##           block._dataSourceLink.createResultSet(conditions)
! ##           print self._dataSourceLink.getQueryString(conditions,1)
! ##         else:
! ##           print "master object"
! 
!     if 0: # TODO: disable for tonite (05-NOV-2002: jst)
!      maxList = []
   
!      for block in self._form._blockList:
!        if block._queryValues.keys():
!          list = [block._dataSourceLink._dataObject._masterObject]
!          while list[0]._masterObject:
!            list.append(list[0]._masterObject)
!          if len(maxList) < len(list): maxList = list
! 
! 
!      SQL = ""
!      for dataobject in maxList:
!        for block in self._form._blockList:
!          if dataobject == block._dataSourceLink._dataObject:
!            break
!        conditions = _generateConditional(block)
!        SQL = self._dataSourceLink.getQueryString(conditions,1,SQL)
!        print "working ", SQL
!      print SQL
  
  ##     # Implement sloppyQuery system
  ##     if self.mode == 'query':
  ##       for entry in self._entryList:
--- 351,376 ----
  
                  
    def processQuery(self):
!     maxList = [self._dataSourceLink._dataObject]
   
!     for block in self._form._blockList:
!       if block._queryValues.keys():
!         list = [block._dataSourceLink._dataObject]
!         while list[-1]._masterObject:
!           list.append(list[-1]._masterObject)
!         if len(maxList) < len(list): maxList = list
  
+     SQL = ""
+     for dataobject in maxList[:-1]:
+       for block in self._form._blockList:
+         if dataobject == block._dataSourceLink._dataObject:
+           break
+       conditions = _generateConditional(block)
+       SQL = self._dataSourceLink.getQueryString(conditions,1,SQL)
+ 
+ ##
+ ## TODO: Do we want this anymore? jst
+ ##
  ##     # Implement sloppyQuery system
  ##     if self.mode == 'query':
  ##       for entry in self._entryList:
***************
*** 395,409 ****
  ##               newValue += letter+"%"
  ##           entry.setValue(newValue)
  
!     self.mode = 'normal'
  
!     self._lastQueryValues = {}
!     self._lastQueryValues.update(self._queryValues)
!     conditions = _generateConditional(self)
!     self._dataSourceLink.createResultSet(conditions)     
        
!     self._recordCount = self._resultSet.getRecordCount()
!     self.processTrigger('POST-QUERY')
  
  
  def _generateConditional(block):
--- 382,405 ----
  ##               newValue += letter+"%"
  ##           entry.setValue(newValue)
  
!     for block in self._form._blockList:
!      if maxList[-1] == block._dataSourceLink._dataObject:
!       break
!     rootBlock = block
! 
!     # Store block states
!     for block in self._form._blockList:
!       block.mode = 'normal'
!       block._lastQueryValues = {}
!       block._lastQueryValues.update(block._queryValues)
  
!     conditions = _generateConditional(rootBlock)
!     rootBlock._dataSourceLink.createResultSet(conditions, sql=SQL)     
        
!     rootBlock._recordCount = rootBlock._resultSet.getRecordCount()
! 
!     for block in self._form._blockList:
!       block.processTrigger('POST-QUERY')
  
  
  def _generateConditional(block):
***************
*** 419,426 ****
              GDebug.printMesg(5,'Adding conditional AND (%s=%s)' % 
(entry.field, block._queryValues[entry]))
              conditionEq[entry.field] = block._queryValues[entry]
  
-     print "Like",conditionLike
-     print "EQ",conditionEq
      if len(conditionLike.keys()) and len(conditionEq.keys()): 
          GDebug.printMesg(5,'Combining like w/and (%s, %s)' % (conditionLike, 
conditionEq))
          conditions = GConditions.combineConditions( \
--- 415,420 ----




reply via email to

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