Bcp,openrowset 的网络访问

----------------------------------------
--Bcp,openrowset 的网络访问
--Flystone--2008-06
-----------------------------------------
一般情况在本地的excel文件,相信大家都会了吧
格式如下:
--1
SELECT *FROM openrowset('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:/aa.xls','select * from [sheet1$]')
--2
SELECT   * FROM   OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',               'Data Source="c:/aa.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[sheet1$]
--3 将会保存到服务器的C:/temp.xls
exec  master..xp_cmdshell 'bcp 200800303.dbo.fdaenterprise out C:/temp.xls  -c  -q  -T    -s "192.168.0.126"  -u"sa"  -p"sa"'
对于这些操作相信大家都会了,不存在问题,可是如何进行网络操作呢?
比如bcp到网络其它机器一般会有如下写法:
exec  master..xp_cmdshell 'bcp 200800303.dbo.fdaenterprise out //192.168.0.136/E:/tst/temp.xls  -c  -q  -T        -s "192.168.0.126"  -u"sa"  -p"sa"' 
或有人映射网络驱动器Z: -->//192.168.0.136/tst
exec  master..xp_cmdshell 'bcp 200800303.dbo.fdaenterprise out Z:/temp.xls  -c  -q  -T        -s "192.168.0.126"  -u"sa"  -p"sa"' 
192.168.0.136上的E:/tst是设置的共享文件夹  
执行上面的SQL,有下面的错误:  
SQLState = S1000, NativeError = 0 Error = [Microsoft][ODBC SQL Server Driver]
无法打开 BCP 主数据文件
如果访问网络上的excel文件,不管是共享地址(//192.168.0.136/tst/temp.xls)还是映射他人的本机物理地址如(Z:/temp.xls)会如下提示:
消息 7399,级别 16,状态 1,第 1 行链接服务器 "(null)" 的 OLE DB 访问接口 "MICROSOFT.JET.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。
消息 7303,级别 16,状态 1,第 1 行无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "MICROSOFT.JET.OLEDB.4.0" 的数据源对象。
那么, 怎么来解决这个问题呢?
首先,我们可以在查询分析器运行如下代码 :
exec master..xp_cmdshell 'dir //192.168.0.136/c$'
此时如果能正常显示出网络机器的目录 说明 会话建立,如果提示拒绝访问就是会话没有建立运行如下代码
进行网络连接:
exec master..xp_cmdshell'net use //192.168.0.136/c$ zxcvbnm /user:192.168.0.136/administrator'
注释: 其中:PASSWORD, 是 USERNAME在 192.168.0.136上的用户,当为空时,用''''      USERNAME 能访问这个目录 的用用户,
比如administrator比如你192.168.0.136 机器上administrator,密码为:1234
exec master..xp_cmdshell'net use //192.168.0.136/tst 1234 /user:192.168.0.136/administrator'
接着你运行如下:
SELECT *FROM openrowset('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=//192.168.0.50/c$/aa.xls','select * from [sheet1$]')
哇,是不是数据全出来了呀,当然你的bcp操作也会成功的了
大家有兴趣可以看看我那篇 blog
一个关于网络备份的例子
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值