def run(self):
        #===========================================================================
        # Initialize db object and connect to database
        #===========================================================================
        # Init the db object
        db = DB(self.dbHost, self.dbDatabase, self.dbTable, self.dbUser,
                self.dbPass)

        # Connect to the remote database server
        loginStatus = db.connect()

        self.postLoginSignal.emit(loginStatus, db)
    def start(self):
        #===========================================================================
        # Main function - start connection to db then open main menu
        #===========================================================================
        try:
            while 1:
                # Get DB info
                self.getDbInfo()

                # Create the DB object
                self.db = DB(self.dbHost, self.dbName, self.dbUsersTable,
                             self.dbVisitsTable, self.dbUser, self.dbPass)

                # Connect to the database
                connectStatus = self.connectToDatabase()

                # If we failed to connect to the database offer to re-enter db info
                if connectStatus != c.SUCCESS:
                    reenter = input(
                        "Failed to connect to database. Re-enter database info? (Y,n) "
                    )
                    if reenter.lower() == "n":
                        print("Bye.")
                        sys.exit(0)
                else:
                    break

            # Start the main menu loop
            self.displayMenu()

        except KeyboardInterrupt:
            pass
        finally:
            print("Cleaning up and exiting...")
            if self.db is not None:
                self.db.close()