/[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.18.2.1 by apronotti, Thu Nov 21 18:58:21 2002 UTC revision 1.18.2.2 by apronotti, Fri Nov 22 18:58:55 2002 UTC
# Line 92  class DBSIG_RecordSet(GDataObjects.Recor Line 92  class DBSIG_RecordSet(GDataObjects.Recor
92                
93        try:        try:
94          print "statement: %s" % statement          print "statement: %s" % statement
95          self._parent._update_cursor.execute("BEGIN; "+statement+"; COMMIT;")          self._parent._update_cursor.execute("BEGIN")
96                    self._parent._update_cursor.execute(statement)
97            self._parent._update_cursor.execute("COMMIT")
98          # Set _initialData to be the just-now posted values          # Set _initialData to be the just-now posted values
99          if not self._deleteFlag:          if not self._deleteFlag:
100            self._initialData = {}            self._initialData = {}
# Line 254  class DBSIG_RecordSet(GDataObjects.Recor Line 255  class DBSIG_RecordSet(GDataObjects.Recor
255                     string.join(vals,',') )                     string.join(vals,',') )
256                                        
257    def _doInsertStatementWHist(self, table):    def _doInsertStatementWHist(self, table):
258        statementElement = self._buildInsertStatementWHist(table)
259        statement = "INSERT INTO %s (%s) VALUES (%s)" % \
260                    (statementElement[0], string.join(statementElement[1],','), \
261                     string.join(statementElement[2],',') )
262    
263        print statement
264        try:
265          self._parent._update_cursor.execute("BEGIN")
266          self._parent._update_cursor.execute(statement)
267          self._parent._update_cursor.execute("COMMIT")
268    
269        except self._parent._dataObject._DatabaseError, err:
270          GDebug.printMesg(1, "_doInsertStatementWHist: ERROR = %s" % err)      
271          raise GDataObjects.ConnectionError, err
272    
273        return 1
274    
275      def _buildInsertStatementWHist(self, table, field=None):
276        if field and field.count('.') > 0:
277          field = field.split('.')[1]
278          
279      vals = []      vals = []
280      fields = []      fields = []
281            
282      pkFields = []      pkFields = []
283      if self._parent._dataObject._primaryKeys:      if self._parent._dataObject._primaryKeys:
284        pkFields.extend(self._parent._dataObject._primaryKeys[table])        pkFields.extend(self._parent._dataObject._primaryKeys[table])
285      for field in self._fields.keys():      for iterField in self._fields.keys():
286        if self._parent.isFieldBound(field):        if self._parent.isFieldBound(iterField):
287          a = len (field.split ('.'))          a = len (iterField.split ('.'))
288          if (a == 2):          if (a == 2):
289            [auxTable, auxField]= field.split ('.')            [auxTable, auxField]= iterField.split ('.')
290            if string.count(self._parent._dataObject.table,',') and (auxTable != table):            if string.count(self._parent._dataObject.table,',') and (auxTable != table):
291              continue              continue
292          elif (a == 1):          elif (a == 1):
293            auxField = field            auxField = iterField
294          else:          else:
295            # raise            # raise
296            pass            pass
297    
298          if pkFields.count(auxField) > 0: continue          if pkFields.count(auxField) > 0 : continue
299            if field and field == auxField :
300              continue
301    
302          #try:          #try:
303          #  if self._fields[field]:          #  if self._fields[field]:
# Line 284  class DBSIG_RecordSet(GDataObjects.Recor Line 308  class DBSIG_RecordSet(GDataObjects.Recor
308          #  pass          #  pass
309    
310          fields.append(auxField)          fields.append(auxField)
311          if self._fields[field] == None or self._fields[field] == '':          if self._fields[iterField] == None or self._fields[iterField] == '':
312            vals.append ("NULL") #  % (self._fields[field]))            vals.append ("NULL") #  % (self._fields[iterField]))
313          else:          else:
314            vals.append (self._parent._dataObject._toSqlString(self._fields[field]))            vals.append (self._parent._dataObject._toSqlString(self._fields[iterField]))
315    
316      for iterField in pkFields:      for iterField in pkFields:
317        fields.append(iterField)        fields.append(iterField)
# Line 307  class DBSIG_RecordSet(GDataObjects.Recor Line 331  class DBSIG_RecordSet(GDataObjects.Recor
331        fields.append("_start_t")        fields.append("_start_t")
332        vals.append("'%s'" % self._parent._dataObject.triggerExtensions.getTimeStamp())        vals.append("'%s'" % self._parent._dataObject.triggerExtensions.getTimeStamp())
333    
334      statement = "INSERT INTO %s (%s) VALUES (%s)" % \      statementElement = []
335                  (table, string.join(fields,','), \      statementElement.append(table)
336                   string.join(vals,',') )      statementElement.append(fields)
337      print statement      statementElement.append(vals)
     try:  
       self._parent._update_cursor.execute("BEGIN")  
       self._parent._update_cursor.execute(statement)  
       self._parent._update_cursor.execute("COMMIT")  
338    
339      except self._parent._dataObject._DatabaseError, err:      return statementElement
       GDebug.printMesg(1, "_doInsertStatementWHist: ERROR = %s" % err)        
       raise GDataObjects.ConnectionError, err  
   
     return 1  
340        
341    def _buildUpdateStatement(self, table):    def _buildUpdateStatement(self, table):
342      updates = []      updates = []

Legend:
Removed from v.1.18.2.1  
changed lines
  Added in v.1.18.2.2

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