MSSQL导入ACCESS数据的问题,在MSSQL查询里可以执行,在客户端执行不了

请仔细看下面这段代码,我放在MSSQL的查询器里运行正常,但是放到程序里用ADOQuery里一段一段的执行就打不开MDB,提示:MicrosoftJet数据库引擎打不开文... 请仔细看下面这段代码,我放在MSSQL的查询器里运行正常,但是放到程序里用ADOQuery里一段一段的执行就打不开MDB,提示:Microsoft Jet 数据库引擎打不开文件'\\192.168.1.89\Share\Test.mdb'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
具体说明:我是将这段代码存入StringList,然后让AdoQuery遇到go就执行,这样一段一段执行的,前面执行没问题,到了打开mdb数据的时候就报错了,但在sql服务器上执行就没问题。可以确定服务器和客户端都已经对Share文件夹有完全的读写权限,直接用Access 2003去打开都没问题。
我做过的尝试:我在服务器端将Share映射为SQL服务器的Z: 盘,在服务器的查询里执行正常取得数据,然后在客户端执行开启Z:\Test.mdb,结果却提示找不到z:\Test.mdb文件。
目的:我需要在程序里执行这段代码在必要的时候才去导入数据。
请各位大大帮忙,我已经找了很久的资料了,仍然无法解决。
SQL Code:
exec sp_configure 'show advanced options',1
reconfigure
go

exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
go

select * from openrowset('Microsoft.Jet.OLEDB.4.0','\\192.168.1.89\share\Test.mdb';'admin'; '',TestDB)
go

exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
go

exec sp_configure 'show advanced options',0
reconfigure
go
在客户端用ACCESS可以打开Test.mdb ,Share文件夹具有完全读写权限,在SQL服务器里执行客户端仍然不能访问。
展开
 我来答
zhjiemm
2012-01-02 · TA获得超过2643个赞
知道大有可为答主
回答量:1834
采纳率:75%
帮助的人:692万
展开全部
你的ADOQuery是怎么写的呢?

你说:但在sql服务器上执行就没问题。
是不是客户端程序,在SQL所在服务器是完全正常的呢? 如果是这样,那就程序本身关系不大了,和网络连接、端口、访问权限有关了。

你先尝试直接在客户端用ACCESS中能否打开'\\192.168.1.89\share\Test.mdb 。
splaybow
2012-01-02 · TA获得超过488个赞
知道小有建树答主
回答量:941
采纳率:0%
帮助的人:715万
展开全部
一步步了解下,你的开发语言是什么?
<%
connstr = "provider=sqloledb;Data Source=PC111VM\SQLEXPRESS;Initial Catalog=Mytest;User Id=sa;Password=123456"

Set conn=server.CreateObject("adodb.connection")
conn.open connstr

conn.execute("exec sp_configure 'show advanced options',1")
conn.execute("reconfigure")
conn.execute("exec sp_configure 'Ad Hoc Distributed Queries',1")
conn.execute("reconfigure")

Set rs=conn.execute("select * from openrowset('Microsoft.Jet.OLEDB.4.0','D:\WWWROOT\demo\lixue\mmsdb.mdb';'admin'; '',staff)")

response.Write rs.fields(0).value

rs.close: conn.close
%>
执行这个,可以有正确的结果。可能跟你从别的地方共享过来有关。
追问
这百度的评论回复好像有问题,一下子说有不适合发布的内容,一下子说我发的内容重复了,没办法放这里吧。
没有启用pipe协议,应该跟这没关系吧,连接SQL服务器正常啊
追答
启动一下,我想跟它可能有关系。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户34328
2012-01-06
知道答主
回答量:9
采纳率:0%
帮助的人:1.5万
展开全部
我认为你可以这样试试,1、先将ACCESS导入到SQL SERVER2000中,2、然后在SQL SERVER2000中又将这个库导出,3、在MYSQL中通过数据导入工具找到2中导出的库,再导进MYSQL中,这样就数据编码就应该不会有什么问题了!我的经验!可以试试!今后一起共勉!有空到CSDN,365testing,测评网看看NFZ。365testing.com。NFZ
追问
你回答的不是我的问题吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
希康高2037
2012-01-03
知道答主
回答量:35
采纳率:0%
帮助的人:11.6万
展开全部
不太明白你的意向!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-01-02
展开全部
我不太懂你的 代码,但是我觉得 你前面执行的那些 有及时关闭吗?如果你没有关闭的话,系统就会认为在你要打开的时候其实已经被占用了!
你是否先打开为好哪……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式