Dongle / Database API Dongle provides a very powerful database system that easily enables the use of multiple and custom profiles . Each dongle object can have multiple databases associated with it , specified by a global variable name . Databases are registered with the core dongle object , which returns a database object . " This API was introduced with Dongle - 1 . 0 " DongleObject Database API . DongleObject : InitializeDB ( name [ , defaults , defaultProfile ] ) . Initializes a database object and returns it . This function can be called anytime AFTER : Initialize ( ) . If you call this function prior to that point , it will succeed but your results will be unpredictable , since the saved variables are not loaded until : Initialize ( ) . Dongle Database Object . Each call to InitializeDB returns a new Dongle Database Object . These functions are all injected into the table , which can be used to store data in the various profiles . The profiles made available to each database object are : Only the profile section is changeable by the user and most data should be stored there . If you have a specific reason for the other sections , they have been provided . Any empty sections are removed when logging off , to prevent unnecessary data storage . Dongle Default Table . The defaults table has a specific format , which needs to match the sections in the actual database . The following is the general format which should be used : You don ' t need to supply each and every section , only the ones you wish to establish defaults for . There is no harm is having sections missing , or having blank sections as above . Dongle Database Object API . DongleDBObject : RegisterDefaults ( defaults ) . Registers a set of defaults with the database . This can be done after the database has been initialized . It will add the defaults given to the current defaults table ( if it exists ) . Behavior . Will add the defaults specified to the current database defaults table DongleDBObject : SetProfile ( name ) . Changes the db object ' s active profile , creating it if it doesn ' t already exist DongleDBObject : GetProfiles ( [ tbl ] ) . Returns a table containing a list of profiles currently available to the user . Arguments . tbl ( table ) - A table to use instead of creating a new table . Returns . tbl ( table ) - A list of the current profiles available , indexed by consecutive integers starting at 1 . This table may contain other elements if it was specified as an argument to the function . DongleDBObject : GetCurrentProfile ( ) . Returns the current profile key being used . Returns . profileKey ( string ) - Current profile key thats being used for the database configuration DongleDBObject : DeleteProfile ( name ) . Deletes the non - active profile specified . Does not allow the user to delete the current profile . Arguments . name ( string ) - The name of the profile to delete DongleDBObject : CopyProfile ( name ) . Copies the given profile into your current profile . Does not allow the user to have the same source and destination profiles . Cannot copy from a profile that doesn ' t exist . Arguments . name ( string ) - The name of the profile to copy from DongleDBObject : ResetProfile ( ) . Resets the current profile by replacing it with an empty profile , and copying the defaults into the profile . DongleDBObject : ResetDB ( [ defaultProfile ] ) . Completely clears the current database and reinitializes it using the defaults already registered . Optionally will set the profile to defaultProfile instead of the system default ( " CharName of RealmName " ) .