asp读取access难题,100分,在线等,谢谢!
小弟现在有个难题:
1.要远程读取另外一台机器上的access文件(access97格式)
2.access文件有很多,按日期有规则命名
不知道读取的连接怎么写,不能用dsn的方式,因为文件名是动态的
我试了myconn="Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=z:\a060306.mdb"
其中z盘是我影射的网络驱动器,但是有错误,'z:\a060306.mdb'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
把这个文件放到本地就可以了,但我必须读取远程的access
不知道各位大虾有什么办法,先行谢过了!
问题点数:100、回复次数:24Top
1 楼happybird123(幸福鸟)回复于 2006-03-14 11:17:31 得分 0
upTop
2 楼danis_cn(宇宙鸟)回复于 2006-03-14 11:30:49 得分 50
远程方法不可取,建议换成sql server的
因为远程连接必须共享,安全性不能保证
Top
3 楼asp_m(写个三层模式)回复于 2006-03-14 11:33:15 得分 0
同意楼上,建议换成sql,安全第一Top
4 楼boyd1985(波伊德乐园->http://www.boyd.cn)回复于 2006-03-14 11:35:29 得分 50
ASP里不可以读取其他机器的数据,这样的方法原则上是可以讲的通,但实际上并不可以做到的。
建议改成SQL或ORACEL,这样可以跨机器来进行了。Top
5 楼flyingsnowy((欧杨)不远万里来看楼主的帖,这是一种什么样的精神病?)回复于 2006-03-14 11:42:54 得分 0
顶一下。从安全性来说。不要用AC了。Top
6 楼happybird123(幸福鸟)回复于 2006-03-14 11:58:28 得分 0
这个东西不是我所能选择的,人家的数据就是access97的数据,而且每天都生成新的mdb,如果好绕过得话,我也不来这里问了阿,各位大哥Top
7 楼fl99(笨笨(QQ:250009333))回复于 2006-03-14 12:29:38 得分 0
能在另外一台机器上安装一个服务么?
如果有权限,就写一个服务来处理ACCESSS数据库,
你的服务器只需要提交命令过去,其它的动作在他本机上执行,返回结果给你,
你这个项目有钱么?我做过很多类似你这种的程序,如果有钱的话,联系我,QQ:250009333Top
8 楼yugui(天锋)回复于 2006-03-14 12:32:37 得分 0
用ODBC可以远程连接ACCESS数据库的。Top
9 楼happybird123(幸福鸟)回复于 2006-03-14 18:20:28 得分 0
不能用odbc的,数据库名是动态改变的Top
10 楼yutian130(骑着布什好歹的萨达姆猪,漫步在小巷的尽头)回复于 2006-03-14 18:40:46 得分 0
!!!!!!数据库名是动态改变的!!!!!!!!!
怎么做的??Top
11 楼yihunnanzi(未婚男子)回复于 2006-03-14 21:36:42 得分 0
好像不行哦,死心吧,寻找别的突破口。。Top
12 楼zys59(三仙半)回复于 2006-03-14 22:59:37 得分 0
fl99(笨笨(只回答50分以上的回题)):这里是自由发布想法的地方,做广告?您免了吧!!!!!Top
13 楼czq9966(宁录)(毛主席领导咱闹革命……)回复于 2006-03-15 00:38:33 得分 0
换用SQL数据库吧,以前搞的时候遇到和你一样的问题,解决不了,后来没有办法,只好换SQL SERVER数据库了,Top
14 楼linjimu(沐)回复于 2006-03-15 09:14:41 得分 0
远程的access是不是指在局域网还是广义网?
要是局域网就比较容易些。
Top
15 楼linjimu(沐)回复于 2006-03-15 09:31:17 得分 0
Dim Cnn As New ADODB.Connection
Dim NewRst As ADODB.Recordset
Dim SqlStr As String
if Right(MdbNetpath,1)<> "\" then MdbNetpath=MdbNetpath &"\"
Cnn.CursorLocation = adUseClient
Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & MdbNetpath & MdbName
Cnn.Open
SqlStr = "select * from TB1 where ItemNo='" & TmpItemNos & "'"
Set Newrst = New ADODB.Recordset
NewRst.CursorLocation = adUseClient
NewRst.Open SqlStr, Cnn, adOpenKeyset, adLockOptimistic
If Not (NewRst.BOF And NewRst.EOF) Then
CheckItemnoIsOk = True
Else
CheckItemnoIsOk = False
End If
Newrst.Close
Set Newrst = Nothing
Set Cnn = Nothing
其中MdbNetpath说明:
可以是局域网中的路径如:"\\PC1\ShareFolder\" MdbNetpath可以是一个或多个常用的共享文件夹路径。
MdbName是你要常变动的数据库的名称。
MdbNetpath可以用数组,也可以用一个表来存放一个或多个记录。也可以写一个GetMdbNepPath函数来说具体的哪一个路径。
MdbName同上。
影射的网络驱动器这样不好。
如果用以上的方法,只要改变MdbNetpath和MdbName就可以让多用户使用同个系统了。
Top
16 楼sxsgssgs(.net新手)回复于 2006-03-15 09:52:02 得分 0
用这种链接方式很容易读取
<%
dim conn,connstr
connstr="DBQ="+server.mappath("test.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>Top
17 楼happybird123(幸福鸟)回复于 2006-03-15 09:59:06 得分 0
linjimu(沐):不行啊,根本连不上数据库Top
18 楼happybird123(幸福鸟)回复于 2006-03-15 10:00:16 得分 0
sxsgssgs(晋乡浪子):请仔细看俺发的内容。。。Top
19 楼rotApple(烂苹果)回复于 2006-03-15 10:06:41 得分 0
在conn里面用FSO列出所有mdb(你文件夹里面不可能有N个MDB吧,应该只有一个)
再用ODBC连,映射的盘是无法连接的Top
20 楼happybird123(幸福鸟)回复于 2006-03-15 16:18:23 得分 0
是每天生成一个mdbTop
21 楼hanyuice(ジ.寒羽.ベ↘)回复于 2006-03-15 17:12:41 得分 0
换成SQL吧,ACCESS根本就不能跨机!Top
22 楼byyt(KingCobra)回复于 2006-03-15 17:18:11 得分 0
在对方的机器上放一个组件使用SOCKIT通讯,你这边发送请求过去,那边按照请求发送回来,然后你这边在接受,数据提取的过程在对方机器上完成.Top
23 楼Chulangzi(楚浪子-我要变强!)回复于 2006-03-15 21:37:36 得分 0
xuexiTop
24 楼caixinke(<<虎讯网>>hoosoon.com)回复于 2006-03-15 21:58:45 得分 0
不 明白为什么 不在对方机器上安装iis服务?Top




