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 = {} |
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]: |
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) |
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 = [] |