>If Jim is not right (and "DemoStorage" does not support "undo"), >then it would not be difficult to derive a "RamFileStorage" from >"FileStorage" that exactly works like "FileStorage" but have its >file implemented as a "StringIO" (rather than a file on the file system).
Thanks for the clever suggestion! I have implemented a StringIOStorage with apparent success. On another note, a problem appeared however when changing the objects that were persisted and I assumed it to be the fault of my StringIOStorage but when I tried reverting abd using a FileStorage the same error occurred. File "C:\Documents and Settings\user\Desktop\smarttree-2.5\database.py", line 25, in commit transaction.commit() File "C:\python25\Lib\site-packages\transaction\_manager.py", line 99, in commit return self.get().commit(sub, deprecation_wng=False) File "C:\Python25\Lib\site-packages\transaction\_transaction.py", line 407, in commit self._commitResources() File "C:\Python25\Lib\site-packages\transaction\_transaction.py", line 506, in _commitResources rm.commit(self) File "C:\Python25\Lib\site-packages\transaction\_transaction.py", line 642, in commit self.manager.commit(o, txn) File "C:\Python25\Lib\site-packages\ZODB\DB.py", line 747, in commit tid, oids = self._db._storage.undo(self._tid, t) File "C:\python25\Lib\site-packages\ZODB\FileStorage\FileStorage.py", line 1117, in undo return self._txn_undo(transaction_id) File "C:\python25\Lib\site-packages\ZODB\FileStorage\FileStorage.py", line 1126, in _txn_undo tindex = self._txn_undo_write(tpos) File "C:\python25\Lib\site-packages\ZODB\FileStorage\FileStorage.py", line 1205, in _txn_undo_write raise MultipleUndoErrors(failures.items()) MultipleUndoErrors: Undo error 0x15e1: Undo error 0x15e1: _loadBack() failed The actual line in FileStorage.py in _txn_undo_write that is raising the exception is: p, prev, v, snv, ipos = self._transactionalUndoRecord(h.oid, pos, h.tid, h.prev, h.version) Since there is an error for this and the errors are put into a dictionary and such, I assume this is not all that rare to occur. Is there a common reason this happens that anyone might be able to clue me in on? Thanks, Mike _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev