在用程序执行SQL里的导入其它格式库的存储过程时(如导入DBF,EXCEL,ACCESS到SQL SERVER库的存储过程),会提示:
错误类型:
Microsoft OLE DB Provider for SQL Server (0x80040E14)
已拒绝对 OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 的特殊访问。必须通过链接服务器来访问此提供程序。
而直接在 查询分析器 里执行就不会报错。
如下面语句格式的存储过程
程序代码
'insert into DBF_Cost(OP_TIME,MSISDN,CALL_FEE,P2P_FEE,MONTH_FEE,GPRS_FEE,MNET_FEE,TOTAL_FEE) select OP_TIME,MSISDN,CALL_FEE,P2P_FEE,MONTH_FEE,GPRS_FEE,MNET_FEE,TOTAL_FEE from OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source="'+@path+'";User ID=;Password=;Extended properties=dBase 5.0'')...'+@tname
出现该问题的原因是当前登录SQL的帐户权限不够,需增加权限。
打开SQL SERVER,点开安全性,点击登录,如图:
在右边会出现所有的登录帐户,选择你当前的登录帐户,右边属性,如图:
在出现的 SQL SERVER登录属性 中选择 服务器角色 ,然后勾选 System Administrators 项,确定,如图: