日期:2014-05-18  浏览次数:20555 次

SQL的OPENROWSET在程序中不能使用
我在SQL Serve2000里写了一个存储过程。主要功能是实现SQL   Server2000里的表导入到Access里。用以下的SQL代码实现:insert   into     OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ', 'd:\nmzrxzsp.mdb '; 'admin '; ' ', 'select   *   from   dataoutexecl ')select   *   from   zr.dataoutexecl   。我在查询分析器里能执行,并能导入到access.但是我在程序里用delphi或VC调用存储程时,提示“Microsoft.Jet.OLEDB.4.0的特殊访问被拒绝,请在服务器上运行”为什么啊?

------解决方案--------------------
zr是你建的用户吗?用sa用户导试试看
------解决方案--------------------
还是zr是数据库名?那就应该是
insert into OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ', 'd:\nmzrxzsp.mdb '; 'admin '; ' ', 'select * from dataoutexecl ')select * from zr..dataoutexecl

你确定在查询分析器可以?
------解决方案--------------------
可能是安全级别不够被server block了

你可以通过sp_configure 来配置

通过 sp_configure 'show advanced options ', 1 --开启高级设置

2005通过 Ad Hoc Distributed Queries 试试 如果是0就改成1 如果是1就改成0

2000开启 romote access 来看看
------解决方案--------------------

应该是权限的问题,好好查查.