Just buying into the tail end of this discussion.

I used to sell and support a commercial package (mid-range, solid,
double-entry, Windows platform only, it's now called Sage Pastel) which
used the Btrieve file system for its database.

In the early versions (90s of last century, before XML), it was at risk of
losing data, because they chose not to use a Brtieve feature called
transaction rollback (IIRC) before updating. Instead they used batch
update, and transactions were temporarily stored in simple text files
(risky in a FAT file system of course). The batch update concept meant that
one could amend or throw away an erroneous entry, but once updated the
transactions were fixed within the Btrieve database and could not be
altered (conceptually written in ink instead of pencil :-) ).

Later when computers were faster, file systems were more robust but power
loss was still an issue, the developers rewrote the code to save at the end
of every transaction (each line of an invoice, each line of a bank entry or
journal) into Btrieve files instead of text files, which meant the worst
you could lose would be the line you were on at the time the power went
out. However they retained the positive features of batch update to allow
for transactions to be modified before final commit.

Thus, the concept of saving every line is well-known but depends on a good
database backend to work effectively. I don't know XML so I don't have any
ideas on how to improve that aspect in GNC. When I overcome my install
issues, I plan to use a database rather than XML, since I am more familiar
with that style of working.

Cheers all.
John Angelico
Melbourne Australia
_______________________________________________
gnucash-user mailing list
gnucash-user@gnucash.org
To update your subscription preferences or to unsubscribe:
https://lists.gnucash.org/mailman/listinfo/gnucash-user
If you are using Nabble or Gmane, please see 
https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
-----
Please remember to CC this list on all your replies.
You can do this by using Reply-To-List or Reply-All.

Reply via email to