/[papo]/gnue/common/src/dbdrivers/_dbsig/DBdriver.py
ViewVC logotype

Diff of /gnue/common/src/dbdrivers/_dbsig/DBdriver.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.14 by apronotti, Wed Oct 2 20:22:16 2002 UTC revision 1.15 by apronotti, Tue Oct 29 18:27:24 2002 UTC
# Line 45  class DBSIG_RecordSet(GDataObjects.Recor Line 45  class DBSIG_RecordSet(GDataObjects.Recor
45        auxTable = string.split(string.replace(table,' ',''),',')        auxTable = string.split(string.replace(table,' ',''),',')
46    
47      for table in auxTable:      for table in auxTable:
48        historyFields = ("start_t","end_t", table)        historyFields = ("_start_t","_end_t", table)
49        statement = "SELECT %s, %s FROM %s WHERE (1 = 0)" % historyFields        statement = "SELECT %s, %s FROM %s WHERE (1 = 0)" % historyFields
50        try:        try:
51          cursor = self._parent._dataObject._dataConnection.cursor()          cursor = self._parent._dataObject._dataConnection.cursor()
# Line 91  class DBSIG_RecordSet(GDataObjects.Recor Line 91  class DBSIG_RecordSet(GDataObjects.Recor
91        GDebug.printMesg(5, "_postChanges: statement=%s" % statement)        GDebug.printMesg(5, "_postChanges: statement=%s" % statement)
92                
93        try:        try:
94          #print "statement: %s" % statement          print "statement: %s" % statement
95          self._parent._update_cursor.execute(statement)          self._parent._update_cursor.execute(statement)
96                    
97          # Set _initialData to be the just-now posted values          # Set _initialData to be the just-now posted values
# Line 110  class DBSIG_RecordSet(GDataObjects.Recor Line 110  class DBSIG_RecordSet(GDataObjects.Recor
110    
111    def _postChangesWHist(self):    def _postChangesWHist(self):
112      auxTable = string.split(string.replace(self._parent._dataObject.table,' ',''),',')      auxTable = string.split(string.replace(self._parent._dataObject.table,' ',''),',')
113        auxHTable = None
114        if hasattr(self._parent._dataObject,"historytable"):
115          auxHTable = string.split(string.replace(self._parent._dataObject.historytable,' ',''),',')
116      statements = []      statements = []
117      result = 1      result = 1
118      if self._deleteFlag:      if self._deleteFlag:
# Line 123  class DBSIG_RecordSet(GDataObjects.Recor Line 126  class DBSIG_RecordSet(GDataObjects.Recor
126          if not result: break          if not result: break
127      elif self._updateFlag:      elif self._updateFlag:
128        if len(auxTable) > 1:        if len(auxTable) > 1:
129          for iterTable in auxTable:          for iterTable in auxHTable:
130            result = self._doDeleteStatementWHist(iterTable)            result = self._doDeleteStatementWHist(iterTable)
131            if not result: break            if not result: break
132            result = self._doInsertStatementWHist(iterTable)            result = self._doInsertStatementWHist(iterTable)
133            if not result: break            if not result: break
134              print iterTable
135        else:        else:
136          result = self._doDeleteStatementWHist(auxTable[0])          result = self._doDeleteStatementWHist(auxTable[0])
137          if result: result = self._doInsertStatementWHist(auxTable[0])          if result: result = self._doInsertStatementWHist(auxTable[0])
# Line 137  class DBSIG_RecordSet(GDataObjects.Recor Line 141  class DBSIG_RecordSet(GDataObjects.Recor
141      if not self._deleteFlag:      if not self._deleteFlag:
142        self._initialData = {}        self._initialData = {}
143        self._initialData.update(self._fields)        self._initialData.update(self._fields)
144          
145        print self._fields
146      self._updateFlag = 0      self._updateFlag = 0
147      self._insertFlag = 0      self._insertFlag = 0
148      self._deleteFlag = 0      self._deleteFlag = 0
# Line 190  class DBSIG_RecordSet(GDataObjects.Recor Line 195  class DBSIG_RecordSet(GDataObjects.Recor
195      import mx.DateTime      import mx.DateTime
196      today = self._parent._dataObject._toSqlString(mx.DateTime.localtime())      today = self._parent._dataObject._toSqlString(mx.DateTime.localtime())
197      return self._parent._dataObject.triggerExtensions.atomicModify(today, \      return self._parent._dataObject.triggerExtensions.atomicModify(today, \
198                                                                     "%s.end_t" % (table), \                                                                     "%s._end_t" % (table), \
199                                                                     self._parent._dataObject, \                                                                     self._parent._dataObject, \
200                                                                     self, \                                                                     self, \
201                                                                     "end_t IS NULL")                                                                     "_end_t IS NULL")
202    
203    
204    def _buildInsertStatement(self, table):    def _buildInsertStatement(self, table):
# Line 217  class DBSIG_RecordSet(GDataObjects.Recor Line 222  class DBSIG_RecordSet(GDataObjects.Recor
222            pass            pass
223    
224          try:          try:
225            pkFields.remove(auxField)            if self._fields[field]:
226                pkFields.remove(auxField)
227              else:
228                continue
229          except ValueError:          except ValueError:
230            pass            pass
231                    
# Line 266  class DBSIG_RecordSet(GDataObjects.Recor Line 274  class DBSIG_RecordSet(GDataObjects.Recor
274    
275          if pkFields.count(auxField) > 0: continue          if pkFields.count(auxField) > 0: continue
276    
277            #try:
278            #  if self._fields[field]:
279            #    pkFields.remove(auxField)
280            #  else:
281            #    continue
282            #except ValueError:
283            #  pass
284    
285          fields.append(auxField)          fields.append(auxField)
286          if self._fields[field] == None or self._fields[field] == '':          if self._fields[field] == None or self._fields[field] == '':
287            vals.append ("NULL") #  % (self._fields[field]))            vals.append ("NULL") #  % (self._fields[field]))
# Line 287  class DBSIG_RecordSet(GDataObjects.Recor Line 303  class DBSIG_RecordSet(GDataObjects.Recor
303    
304      if self._haveHistory(table):      if self._haveHistory(table):
305        import mx.DateTime        import mx.DateTime
306        fields.append("start_t")        fields.append("_start_t")
307        vals.append(self._parent._dataObject._toSqlString(mx.DateTime.localtime()))        vals.append(self._parent._dataObject._toSqlString(mx.DateTime.localtime()))
308    
309      statement = "BEGIN; INSERT INTO %s (%s) VALUES (%s)" % \      statement = "INSERT INTO %s (%s) VALUES (%s)" % \
310                  (table, string.join(fields,','), \                  (table, string.join(fields,','), \
311                   string.join(vals,',') ) + "; COMMIT "                   string.join(vals,',') )
312        print statement
313      try:      try:
314          self._parent._update_cursor.execute("BEGIN")
315        self._parent._update_cursor.execute(statement)        self._parent._update_cursor.execute(statement)
316          self._parent._update_cursor.execute("COMMIT")
317    
318      except self._parent._dataObject._DatabaseError, err:      except self._parent._dataObject._DatabaseError, err:
319        raise GDataObjects.ConnectionError, err        raise GDataObjects.ConnectionError, err

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26