您的位置:首页 > 数据库

如何存取其他机器上的数据库(access)(2001年CSDN上的一帖子)

2005-01-08 12:21 351 查看
主  题:请问如何存取其他机器上的数据库(access)?
作  者:netying
所属论坛:ASP
问题点数:60
回复次数:72
人气指数:1052
发表时间:2001-10-15 10:56:18
是这样的,我的ASP程序运行在一台机器上,比如192.168.0.2
但是需要对另一台机器192.168.0.3上的数据库my.mdb进行操作,如何连接呢?

回复贴子:
 zymfy(梦小凡) 回复于2001-10-15 11:54:18 得0分
Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=//SERVER/c/dd/mf.mdb

把data soruce设为数据库所在机子的名子就行了。
 xxxs(我思故我在) 回复于2001-10-15 11:58:38 得0分
同意!
 netying(鹰击长空) 回复于2001-10-15 12:45:18 得0分
可是不行啊!我的代码如下,不好使,路径没有问题

<%
set conn2=Server.CreateObject("ADODB.Connection")
dsntemp="DRIVER={Microsoft Access Driver (*.mdb)};Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=//power_printer/d/dbs/mf.mdb"
conn2.Open dsntemp
%>

错误类型:
ADODB.Connection (0x800A0E7A)

 netying(鹰击长空) 回复于2001-10-15 12:56:14 得0分
如果我用DSN来连接该如何做?
 netying(鹰击长空) 回复于2001-10-15 14:13:23 得0分
求各位给想个办法!
 cccmx() 回复于2001-10-15 14:23:34 得0分
创建dsn时,不也可以指向网络路径吗??
 netying(鹰击长空) 回复于2001-10-15 14:56:50 得0分
是啊,我DSN创建好了,可是却出错,yyy是DSN的名字,我创建的系统DSN
<%
set conn2=Server.CreateObject("ADODB.Connection")
dsntemp="dsn=yyy;uid=;pwd="
conn2.Open dsntemp
%>

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

 netying(鹰击长空) 回复于2001-10-15 15:48:59 得0分
有哪位兄弟做过这样的访问,给指点指点~~感激不尽!!
 netying(鹰击长空) 回复于2001-10-15 19:39:59 得0分
up
 fanhigh(虫子) 回复于2001-10-15 21:14:00 得0分
我想先作映射会不会好一点?
 cccmx() 回复于2001-10-16 7:47:00 得5分
创建dsn时会自动影射
我用系统dsn试了以下,连接正常
conn.open "dsn=mydsn"
你再试以下
 netying(鹰击长空) 回复于2001-10-16 8:08:22 得0分
to cccmx:我也是这样做的,可是就是连不上,你那个做共享的时候有口令吗
 lczddd(李早乐) 回复于2001-10-16 11:39:28 得0分
大家的方案都是可行的,应该可以了
 netying(鹰击长空) 回复于2001-10-16 12:49:11 得0分
我也觉得可行,可是就是不好使啊,急死我了!!
 zxwcq(小马) 回复于2001-10-16 13:09:52 得0分
先配DNS。然后直接连
 netying(鹰击长空) 回复于2001-10-16 13:22:27 得0分
DSN我做好了,可是连接的时候就是不行,总是错误:
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

真让我疯了
 netying(鹰击长空) 回复于2001-10-16 21:21:04 得0分
up
 baijy() 回复于2001-10-17 1:09:08 得0分
作DSN的时候又要你测试啊,你测试看对不对了,如果对就要看看程序了.
 netying(鹰击长空) 回复于2001-10-17 8:12:05 得0分
我做DSN的时候没有让我测试,也没有测试的选项
 slightgao(标点) 回复于2001-10-17 10:28:56 得0分
看看那个mdb的权限问题。
 netying(鹰击长空) 回复于2001-10-17 11:16:24 得0分
楼上,这个没有什么权限设置的
 custor(小刀) 回复于2001-10-17 12:07:20 得0分
找本书学学DNS吧
 netying(鹰击长空) 回复于2001-10-17 13:02:05 得0分
学DNS干吗??
 netying(鹰击长空) 回复于2001-10-17 19:35:28 得0分
还是没有办法,我要怎么办呢
 zxb2001(zxb) 回复于2001-10-17 19:57:49 得0分
gz
 lg12net(相信自己) 回复于2001-10-17 22:13:00 得0分
先做映射,然后就象访问本地路径一样访问就行了
 cccmx() 回复于2001-10-18 7:36:20 得0分
我觉得,你可以先用vb实验以下,用adodc控件,使用字符串连接,根据向导一步一步的做,然后测试连接。一定可以的
 小星星() 回复于2001-10-18 8:02:59 得15分
你连不上很正常的,因为你测试时的用户可能是Administrator或者其他的,而网络Server允许你访问呀。
而用asp调用的时候IIS启动进程采用的用户是IUSR_ComputerName,该用户是没有权限访问网络上的资源的,不信,你可以再试试看.
如果你真的要存取网络上的数据库,可以考虑使用RDS.Datacontrol(不过对方得安装IIS+RDS)
呵呵,用asp访问不了网络上的资源很正常的哦。什么样的connstring都是没用的哦.
 小星星() 回复于2001-10-18 8:05:59 得0分
我看还不如用SQL Server2000吧
不用考虑这么多东西了.
你的错误就象我以前在ASP用连接SQL Server采取信任验证一样,呵呵.
以后可别犯这种低级的错误哦
:)
 netying(鹰击长空) 回复于2001-10-18 8:35:42 得0分
可是数据库必须用ACCESS,因为这个别的程序还要使用的
小星星():难道真的一点办法没有吗?那机器装IIS也不太可能
 netying(鹰击长空) 回复于2001-10-18 8:41:05 得0分
to cccmx():你做成功了吗,你是怎么做的呢??
 cccmx() 回复于2001-10-18 8:48:09 得0分
我这里是完全可以。你没有用vb测试吗?
 netying(鹰击长空) 回复于2001-10-18 14:56:41 得0分
没有用VB测试,但是我想用VB应该没有问题,但是ASP就是不行啊
 nlibo(小皮) 回复于2001-10-18 15:26:33 得0分
我和netying(鹰击长空)遇到类似的问题,只是我在WIN98下可以连接,在WIN2K下不行,而且在WIN2K下用VB测试成功,用ASP不行,怎么回事?谁能解决啊???
 yongmingstar(lym) 回复于2001-10-18 16:13:33 得0分
先在global.asa中定义
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Application_OnStart
Application("ConnectionString")="Driver={Sql Server};Server=liuym;UID=sa;PWD=;DATABASE=StatePower"
END SUB
</SCRIPT>
 小星星() 回复于2001-10-18 19:49:42 得0分
如果真的要用的话,我看不如将IIS启动进程的用户从IUSR_ComputerName(站点属性==安全性--匿名访问的用户....)换到你计算机上的guest组的一个用户.并且在服务器上建一个该用户。并且设置该用户能够远程访问共享文件夹.....
我没测试过.......,只是从理论上可以.......
如果Client和Server是98就不会出现上述问题的哦......

 netying(鹰击长空) 回复于2001-10-18 20:58:27 得0分
关键是有谁在这方面做成功过,我现在开始怀疑是不是这种方法本来就是不可行的。
 Congy(少侠) 回复于2001-10-18 21:21:15 得0分
是可以的,你用的是access版本是多少?如果是2K,则连接字符串为
dsntemp="DRIVER={Microsoft Access Driver (*.mdb)};Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data
 netying(鹰击长空) 回复于2001-10-18 21:37:03 得0分
楼上的大哥,你没有写完,你是试验过的码?
 52694(错爱) 回复于2001-10-18 22:09:00 得0分
可先做影射

后用dns
 netying(鹰击长空) 回复于2001-10-18 22:21:11 得0分
都试过了,不行
 cccmx() 回复于2001-10-19 7:29:18 得0分
在asp上也是可以的,我就是用interdev写的。我让你用vb测试,是测试你的连接是否正确。
 Taken(铁拳) 回复于2001-10-19 9:48:30 得0分
1.首先你要具备访问那台计算机上指定文件的权限,在资源管理器中试一下;
2.试着吧那台机器的名称改为IP试一下。

我的mail: iamyourfriend@eyou.com
 netying(鹰击长空) 回复于2001-10-19 10:25:34 得0分
主要是有谁这么成功的用过?我现在急死了
 attababy(attababy) 回复于2001-10-19 13:09:57 得0分
Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=//192.168.0.3/c/dd/mf.mdb
 netying(鹰击长空) 回复于2001-10-19 13:28:13 得0分
楼上这种方法还是不行

错误类型:
ADODB.Connection (0x800A0E7A)
/jzsl/conn2.asp, 第 10 行

 dave75(dave) 回复于2001-10-19 13:45:46 得0分
gz
 zz321() 回复于2001-10-19 13:46:07 得0分
升级相关版本!!!
 love_me_forever(钟爱我一生) 回复于2001-10-19 15:59:18 得0分
gz
 Nizvoo(瓦匠泥) 回复于2001-10-19 17:30:00 得0分
可以对odbc配置后引入文本不就可以了吗???
 bluepower2008(蓝色力量) 回复于2001-10-19 17:37:02 得0分
你能不能补充说明一下你的两台机器的操作系统都是什么?
 小星星() 回复于2001-10-19 20:57:21 得0分
你连不上很正常的,因为你测试时的用户可能是Administrator或者其他的,而网络Server允许你访问呀。
而用asp调用的时候IIS启动进程采用的用户是IUSR_ComputerName,该用户是没有权限访问网络上的资源的,不信,你可以再试试看.
如果你真的要存取网络上的数据库,可以考虑使用RDS.Datacontrol(不过对方得安装IIS+RDS)
呵呵,用asp访问不了网络上的资源很正常的哦。什么样的connstring都是没用的哦.
回复人: 小星星() (2001-10-18 8:05:59) 得0分
我看还不如用SQL Server2000吧
不用考虑这么多东西了.
你的错误就象我以前在ASP用连接SQL Server采取信任验证一样,呵呵.
以后可别犯这种低级的错误哦
:)
如果真的要用的话,我看不如将IIS启动进程的用户从IUSR_ComputerName(站点属性==安全性--匿名访问的用户....)换到你计算机上的guest组的一个用户.并且在服务器上建一个该用户。并且设置该用户能够远程访问共享文件夹.....
我刚测试过,ok了!!!
不过IIS启动进程的账号必须改!!!!
 netying(鹰击长空) 回复于2001-10-19 20:57:47 得0分
我的ASP程序运行在WIN2000 advanced server下,access数据库在win98的机器上
 netying(鹰击长空) 回复于2001-10-19 21:02:48 得0分
to 小星星(),你说的真是可行吗?我把那个帐号改到 guest组后,站点就无权限访问了
再请教:怎么设置该用户能够访问远程共享文件夹呢,你这么改了会不会有安全问题?
 小星星() 回复于2001-10-19 21:25:49 得0分
改成Guest就可以了,密码为你自己的密码(别允许IIS控制密码了)
将服务器的文件共享,开设一个Guest,密码为你自己的密码。一切OK了
服务器98就好办多了。。。。
 huangda(c8848) 回复于2001-10-19 22:26:56 得0分
检查一下你创建数据源时选择的数据库驱动程序是否正确(Microsoft Access Driver(*.mdb));不然的话,换一种(*.mdb)驱动程序试试,你的这个问题应该是版本兼容性引起的。(huangda@163.com)

 yhtok() 回复于2001-10-20 11:09:48 得0分
检查一下ACCESS文件是否是可写!
 netying(鹰击长空) 回复于2001-10-20 13:37:24 得0分
to 小星星():我的数据库在98的机器上,没有权限设置的,做的是完全共享
 bluepower2008(蓝色力量) 回复于2001-10-20 16:06:54 得40分
这个问题,我找到原因了,关键在于你建立的网络映射,由于你的IIS服务器是win2000,在建立映射时默认的用户是当前用户,但你的IIS进程使用的用户时IUSR_ComputerName,所以找不到相应的网络映射,你只需要在建立网络映射时,指定使用的用户名是 IUSR_ComputerName,密码你可以在用户管理器中将密码改成你自己设定的密码,就可以了.
 netying(鹰击长空) 回复于2001-10-20 19:22:18 得0分
楼上大哥:建立影射时怎么指定用户名呢?好象没有这个选项
 bluepower2008(蓝色力量) 回复于2001-10-21 14:15:38 得0分
在win2000上,你先找到要建立映射的共享目录,然后击右键,选择"映射网络驱动器",在弹出的窗口中有"使用其他用户名进行连接"选项,在那可以设置.
 netying(鹰击长空) 回复于2001-10-21 19:09:16 得0分
谢谢楼上,我去试一下,要是真的是这样,那原因就找到了,一定给分的!
 netying(鹰击长空) 回复于2001-10-22 8:24:32 得0分
to bluepower2008:我照你说的做了,可还是不行啊!
 netying(鹰击长空) 回复于2001-10-22 11:34:36 得0分
up
 firefox2000(渣渣) 回复于2001-10-22 12:37:30 得0分
此方法行得通,测试已通过
<%
set conn=Server.Createobject("ADODB.connection")
conn.connectionstring="driver={Microsoft Access Driver (*.mdb)};DBQ=//agpserver/ydq/photo.mdb"&";uid=;pwd=;"
conn.open
 bluepower2008(蓝色力量) 回复于2001-10-22 13:30:03 得0分
你说的不行,程序提示什么?你的IUSR_ComputerName的密码对吗?ComputerName是你自己机器的名字.
 netying(鹰击长空) 回复于2001-10-22 14:18:36 得0分
回楼上,密码没有问题,我的机器名字ZRH,没有问题,IUSR_ZRH,
出错提示信息还是
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

我真是要疯掉拉
 bluepower2008(蓝色力量) 回复于2001-10-22 14:39:41 得0分
你是在用户管理里面把IUSR_ZRH的密码改成你知道的密码了吗?有没有在IIS中选择密码同步?你现在直接访问网站上的HTML页面成功吗?
 netying(鹰击长空) 回复于2001-10-22 15:55:53 得0分
楼上大哥,谢谢你:
我是把IUSR_ZRH的密码改成了做影射时“使用其他用户连接”那里的密码
我访问站点是成功的,没有问题
IIS中密码同步是什么意思?

为什么我这就是连不上呢?
 netying(鹰击长空) 回复于2001-10-22 16:01:47 得0分
不对,我这样做后访问不了站点了,HTML也访问不了了!
 netying(鹰击长空) 回复于2001-10-22 16:16:14 得0分
成功了!
总结一下:
1。做共享影射时候使用“其他用户连接”,用户名为IUSR_ZRH,口令假定11111
2。在用户管理里把IUSR_ZRH口令改为11111
3。在WEB站点属性里-》目录安全性-》匿名访问和严正控制,点编辑,
出现的界面里,再点编辑,设置用户名和口令同前,OK
多谢各位,马上给分了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: