I've found the answer to #1: it helps if you spell the name of the target database table properly!
So setting table.Location = newTableName works. I know this because when I preview the report I get an unknown field error.
But the FieldMapping event is still not fired when I verify the database.
Cheers
- rick