orac_dba.pl - the Main Oracle module of the Orac tool
This module sets up the program, by pulling in the required modules, setting up menus, providing the main screen, setting up global variables and giving the other modules a small library of utility functions.
Backs out of program as nicely as possible, and saves any chosen options in the main configuration file.
Picks up the users required defaults for the screen appearance, database requirements etc.
Puts up the main dialogue to pick a new database. Allows user to change database type, if they wish. Also, sets flag to help prevent connection error messages, except on the last attempt at connection.
Actually attempts the DBI database connection.
User may either be picking default database type for the first time, or changing database type. Either way, this builds up a dialogue to allow them to do this.
Picks up the typical user for the particular database.
Picks up database, and then configures menus accordingly.
Makes the main GUI pointer go busy.
Makes the main GUI pointer go Un-busy.
Change the background colour on all open windows. Also foregrounds, where not a Canvas. This is where all those text and window handles come in useful.
Open up the main configurable language file, and pick up all the strings required by Orac.
Opens up the main configurable language file, and picks up all the strings required by Orac.
In the series of functions that will be modified at some unspecified date in the future, to make Orac natural language independent.
Reads the database dependent menu configuration file, and build up menus. This function gets pretty complex, and a strong drink may be required beforehand, before attempting to work out what it is doing :)
Builds up the 'My Tools' options, where Orac users can specify their own local SQL files to generate Orac-like reports.
Picks up the SQL the user has entered, and saves it into the appropriate file.
Allows configuration of 'My Tools' menus, buttons, cascades, etc. Tries to make the setting up of new buttons, cascades etc, as painless as possible.
More functionality required to allow on-the-fly configuration of the 'My Tools' options.
This function is fairly overloaded, and may require some detailed analysis, before it becomes clearer what it's doing.
My apologies to those who may want to re-write this, and provide something much neater.
Configures and sorts the users generated SQL reports buttons.
Pick up more information on the configurable buttons.
When user selects their own button, run the associated report.
If the 'My Tools' menu currently exists, then destroy it. This helps regenerate "fresh" menus, as required.
Take a Window handle, and tie an icon to it.
This allows user to select main database type. Also allows selection of pre-defined background colour. Assign some pre-defined values in case the config file not yet available.
Special functionality to isolate acceptable errors, depending on database type, and place other errors into readable GUI windows for ease of debugging/reading by users.