Its good that you thought of it. Lets look at the possibilities:
1. Show a progress bar as you mentioned along with cancellation and so on. A lot more work, dont beleive that much detail is required. It'd be neat though, just make sure, that as an when u cancel, u dont leave the connections in an inaccurate state.
2. Show a busy wait cursor as long as booking is going on....dont care if it takes 1min or 60 mins. My design states that cancellation is not required as of the requirements. When the job completes or bombs, make sure u reset the cursor back. When will the booking process seem slow? If our locking is not good enough to release locks correctly or across a network that is dead slow. How much work are we doing for booking? Are we sending a very large object across the wire? Currently no...thus the time to transfer the data across a standard connection like 28.8 would be fast too with the current scope of the DataInfo object used. Now if the database got really big, then the read records remote call of all records would take a hell of a long time, right. In which case we would need some sort of a paging client etcc......heheh Looks like I am defending my solution here..
Either way dude, make sure you document your approach any why u feel one way is better than the next etc.... Hope I didnt confuse u more ...
Good luck...
3.