Advanced QHacc
QHacc is aimed squarely at the non-advanced user. However, there are
some features that should generally be avoided by the casual user, but
may be of interest to people who like to break things. I call these the
advanced features of QHacc. You should not use any of the features
described here. They are for tinkerers and
live-by-the-seat-of-your-pantsers. Very often, they will completely
destroy your installation and all your data. You have been warned.
Undocumented Features
I should start off by saying I get a kick out of a section in the
documentation titled "Undocumented Features." Obviously, I'm documenting
them here, so perhaps this section should be titled "Screwball Antics," or
"How to Break QHacc," or some such, but those just don't make me laugh
like "Undocumented Features" does. I should also mention that some of
these features can be set on the plugin-specific page of the Preferences
Dialog, but that does not mean they are safe to use.
- KEEPFILEPERMS By default, QHacc will reset the file
permissions on files it writes so that only the current user can open
them later. That's not strictly true, because setting the
KEEPFILEPERMS preference to true will make QHacc leave the file
permissions alone. It will leave file permissions as it finds
them. This is highly discouraged, as it could leave your data readable
by anyone on the system. However, if two users want to share one
QHACC_HOME, it's very handy.
- CONSERVEIDSONIMPORT If you're a big importer and exporter,
you may have noticed that QHacc burns through table ids like they're
going out of style. That behavior has been curtailed somewhat as of
release 2.9.3, but QHacc will still waste many IDs. Setting
CONSERVEIDSONIMPORT to true will force QHacc to reclaim any IDs that
it previously wasted. That is, all the IDs of QHacc's tables will be
contiguous starting with ID=1. This is totally unnecessary. QHacc uses
an unsigned integer for all its IDs, so even if you tried as hard as
you could, it would next to impossible to run out of IDs. Still, if
you're anal like me, you might want your IDs to be contiguous.
This "feature" is particularly dangerous because it will invalidate
duplicate checking on subsequent imports, and it will very likely
break any archives you've made. Basically, you won't be able to import
any data ever again, and recovery from this situation is impossible.
- NORECALCONSTARTUP QHacc tries to recalculate its account
balances every time it starts up. This is to make sure that any
transactions added or modified without using the program are correctly
accounted for. If you find that you never alter QHacc's data without
using the GUI or CLI, you can set this preference to true, and QHacc
will skip its usual calculations. This will make startup a bit faster,
especially if you have lots of transactions and are using the native
database. Account balances will still be recalculated when a
transaction inside the account is altered.
- XMLCOMPRESSIONLEVEL Okay, all the dire warnings that
do apply to the other options on this list probably don't apply
to this one. If you're a fan of the XML plugin, but find that the file
it creates is just too darned big (it is XML, after all), you can set
this preference item to a number between 1 and 9. When set, the XML
plugin will gzip its data before writing it to the filesystem. The
higher the number, the better compression you'll see. Unless you go
passed 9, in which case you'll get standard uncompressed files
again. How does the engine know if the data is compressed before it
tries to open your QHACC_HOME? It doesn't. It initially assumes the
data is compressed, and if that doesn't yield usable data, it assumes
it is uncompressed. If neither works, you're in trouble.