使用insert into openrowset语句必须明白的一点

例如执行语句:

select   *   from   openrowset ( ' Microsoft.Jet.OLEDB.4.0 ' ' D:/testMDAC/mydb.mdb ' ; ' admin ' ; '' , table_name)

如果程序是运行在数据库连接(ADOConnection)所在的服务器(即本机运行),上面这个代码没有任何问题。
如果程序拿到局域网中的其它机器运行,将一直提示:

[ OLE/DB provider returned message: 'D:/testMDAC/mydb.mdb'不是一个有效的路径,确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

正确的解决办法应该是,使用UNC路径书写以上语句:
select   *   from   openrowset ( ' Microsoft.Jet.OLEDB.4.0 ' ' //192.168.0.82/testMDAC/mydb.mdb ' ; ' admin ' ; '' , table_name)

即在本机也创建testMDAC目录,并设置为共享。(192.168.0.82表示本机的IP地址)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OPENROWSET 是 SQL Server 提供的一个用于连接到外部数据源的函数,可以通过它来查询、导入、导出外部数据源的数据。OPENROWSET 语法如下: ``` OPENROWSET ( provider_name, init_string, { query | 'query' } ) ``` 其中,provider_name 是外部数据源的 OLE DB 提供程序名称,init_string 是用于初始化外部数据源连接的字符串,可以是一个连接字符串或者其他初始化选项,query 是要执行的查询语句。 如果要使用 OPENROWSET 函数查询外部数据源的数据,可以使用以下语法: ``` SELECT * FROM OPENROWSET('provider_name', 'init_string', 'SELECT * FROM external_table') ``` 其中,'provider_name' 为外部数据源的 OLE DB 提供程序名称,'init_string' 为连接字符串,'external_table' 为外部数据源的表名或查询语句。这样,就可以将外部数据源的数据查询到 SQL Server 中。 如果要使用 OPENROWSET 函数将 SQL Server 中的数据导出到外部数据源中,可以使用以下语法: ``` INSERT INTO OPENROWSET('provider_name', 'init_string', 'SELECT * FROM external_table') SELECT * FROM local_table ``` 其中,'provider_name' 为外部数据源的 OLE DB 提供程序名称,'init_string' 为连接字符串,'external_table' 为外部数据源的表名或查询语句,local_table 为 SQL Server 中的表名。这样,就可以将 SQL Server 中的数据导出到外部数据源中。 需要注意的是,使用 OPENROWSET 函数需要在 SQL Server 中启用 Ad Hoc 分布式查询,否则会出现以下错误: ``` Msg 15281, Level 16, State 1, Line 1 SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. ``` 要启用 Ad Hoc 分布式查询,可以使用以下命令: ``` EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXEC sp_configure 'Ad Hoc Distributed Queries', 1; GO RECONFIGURE; GO ``` 启用后,可以使用 OPENROWSET 函数查询、导入、导出外部数据源的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值