We've recently migrated several sql server 2000 databases on a 32 bit server to sql server 2008 on a 64 bit server. As I result, I've had to change all of our 32bit data sources for opendatasource and openrowset to their 64bit counterparts - in this case, Microsoft.ACE.OLEDB.12.0. I've also had to change the server's registry setting of DisallowAdHocAccess to 0 (because clients without admin access are uploading this data).
Unfortunately, I've discovered that using openrowset for xlsx files completely crashes sql server with error 17311. I have to manually restart both sql server and agent even though agent is set to autorestart sql server on failure.
The query I use that crashes my server is:
Select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=\\MyMachine\public\example.xlsx;HDR= YES', 'SELECT * FROM [This_silly_sheet]')
Has anyone else run into this and found a runaround? Unfortunately I don't have a 64bit SQL08 dev box to test workarounds and I can't chance crashing the production server again.