We have a server with Windows 2003 x64 Standard running SQL Server 2008 Standard with SP2 (10.0.4000) and a test system running on Windows 2003 Standard running SQL Server 2008 Developer with SP2 (10.0.4000).The databases/server on the x64 platform is production, and the ones on the x86 platform are for development and QA. The databases are exactly the same once a production push occurs; thus, the databases are out of sync for development, and are sured up once a push occurs.We have installed the Microsoft Access Database Engine 2010 Redistributable download on each server. The x64 drivers on the x64 box, and the x32 drivers on x86 box.Our problem: We have a job that creates a set of data within a SQL Server table. Once that is finished, we have a SQL script that copies our Excel spreadsheet template created by the users to a shared drive and updates the spreadsheet. Inside the script that updates the spreadsheet, it draws the data from the SQL Server database table into a temporary table and then, it updates the Excel spreadsheet from the temporary table.Our statement that updates the Excel spreadsheet, which runs successfully, on the x86 platform follows:UPDATE aSET F1=ReportDetailTypeDisplayName,F2=OutputValue,F3=OutputValue1,F4=OutputValue2,F5=OutputValue3,F6=OutputValue4,F7=OutputValue5,F8=OutputValue6,F9=OutputValue7,F10=OutputValue8,F11=OutputValue9,F12=OutputValue10,F13=OutputValue11FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;HDR=No;DATABASE=\\zeus\TestOutput\20110310\20110310_Pembroke.xls', 'Select * from [Sheet1$]') AS aINNER JOIN #t AS rptr ON CAST(a.F1 AS VARCHAR(200)) = CAST(rptr.[Sequence] AS VARCHAR(200)) + 'a'WHERE rptr.PullID = 52427--AND rptr.[Sequence] <= 3It fails with the following error on the x64 platform: Msg 7399, Level 16, State 1, Line 34The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" reported an error. The provider did not give any information about the error.Msg 7303, Level 16, State 1, Line 34Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".The share \\zeus\TestOutput\ and drive directory have Full Control given to "Everyone" and "Guests".Now, if one copies the Excel spreadsheet to the local hard disk, directory c:\temp, of the x64 SQL Server, and change the update to:UPDATE aSET F1=ReportDetailTypeDisplayName,F2=OutputValue,F3=OutputValue1,F4=OutputValue2,F5=OutputValue3,F6=OutputValue4,F7=OutputValue5,F8=OutputValue6,F9=OutputValue7,F10=OutputValue8,F11=OutputValue9,F12=OutputValue10,F13=OutputValue11FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;HDR=No;DATABASE=C:\temp\20110310_Pembroke.xls', 'Select * from [Sheet1$]') AS aINNER JOIN #t AS rptr ON CAST(a.F1 AS VARCHAR(200)) = CAST(rptr.[Sequence] AS VARCHAR(200)) + 'a'WHERE rptr.PullID = 52427--AND rptr.[Sequence] <= 3It is successful with the message:(298 row(s) affected)Could you investigate the issue here? Is this a bug in the "Microsoft.ACE.OLEDB.12.0" driver for Excel on 64-bit?
Version
Category
Operating System
Platform