-- Title : [2k5] x64에서 엑셀 생성 오류(엑셀 공급자) 해결 및 엑셀 자동 첨부 메일링
-- Reference : wipscorp.com 정명훈K/정진아, microsoft.com
-- Key word : 엑셀, excel, provider, 공급자, mailing, 메일링
********************************************************************************************/
/*
-- 정진아 작업 내역
*/
(win2003x64에서 JET안됨)Need 64-bit JET provider for x6.mht
/*
-- 연결된 서버
*/
EXECsp_addlinkedserver @SERVER = @SERVERNAME
, @srvproduct ='Microsoft Excel Workbook'
, @provider ='Microsoft.ACE.OLEDB.12.0'
, @datasrc = @PATH
, @provstr ='Excel 12.0';
EXECsp_addlinkedsrvlogin @SERVERNAME,'false';
/*
-- 오류
*/
메시지7403, 수준16, 상태1, 줄1
OLE DB 공급자"Microsoft.ACE.OLEDB.12.0"을(를) 등록하지 않았습니다.
/*
-- 해결
*/
1. MS 다운로드센터에서아래에링크되어있는드라이브를설치한다 (32bit인지 64bit인지확인)
Microsoft Access Database Engine 2010 Redistributable
2. 아래의스크립트실행한다
sp_configure'show advanced options', 1
GO
RECONFIGURE WITH OverRide
GO
sp_configure'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE WITH OverRide
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
-- 확인방법 : 경로에해당파일생성후테스트 (엑셀파일 MS-Server에서조회)
SELECT*
FROMOPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
'Data Source=E:\test.xlsx;Extended Properties=''Excel 12.0;HDR=YES''')...[Sheet1$]
GO
/*
-- Provider 생성 확인
*/
-- "Microsoft.ACE.OLEDB.12.0"에서 동적 매개 변수와 Inprocess 허용 체크 확인