I'm wary due to my dBase experiences. Maybe I shouldn't be so wary, but my approach evolved from my dBase era, finding a string of binary zeroes slashing through my dbf tables after power disruptions.
Currently, I have applications running for about eight years in a bad power environments, with few if any problems related to file corruption.
select * from customers into cursor x
use in customers
*...process x...
use customers
*...update customers...
use
use in x
Essentially I minimize the existence of open tables.
Server loads are never heavy in this small business environment, so I can open and close a table in at least 1/200th of a second, with confidence that data is stored to disk.