Adding an TActivityindicator when running long queries. What is the best way to implement?

Adding an TActivityindicator when running long queries. What is the best way to implement?

Some of my queries with Unidaq (Locates, field lookups and updates) take a few seconds to implement.

What is the best way to implement an activity indicator when these are initiated? 

Can I use events to kick off showing, displaying, updating, and eventually hiding an activity indicator?

Would that event need to be in a thread or should I be running the database process in a thread, and running the activityindicator in the main thread?

Implementing at the database table level would be a great way to not bloat out the code elsewhere every time there is a database interaction.