Posted by: Deoxy
« on: April 27, 2011, 09:41:32 PM »For example, when you delete a race using the UI, in addition to the expected cascade deletes, the code manually deletes matching AlienRace records, updates references to ControlRaceIDs in the RaceSysSurvey tables, removes appropriate GameLog entries and CurrentDesign entries, fixes race references in TechSystem and deletes records from EventColour, RaceClassName, HideEvents and RaceSysMapDisplay.
The only ones of those I didn't already know of from a cursory look through the database was EventColour and HideEvents, but that's because I haven't opened them at all yet (and they certainly don't surprise me). As I said, I'm an MS Access programmer by profession, and I've done a LOT of work in databases that have no key constraints (meaning no cascading deletes of any kind), so none of this is really all that complex compared to my "day job".
I've performed several database data changes now, several of them just for fun, and I haven't seen any errors from them, nor would I report an error that could possibly be related until I repeated it in an unmodified game. You've actually done a lot of this is a very straightforward manner (that's a GOOD thing).
That's not to say that I don't recognize that it's a ton of work, or that I don't appreciate how much work went into it.
(Having taught myself VBA many years ago by writing Tetris in Excel, I fully understand that "building a game to learn the language" is both a great way to motivate yourself to learn a language AND a great way to spend WAY more time on a project than the final result would indicate.)