标题:在线等---如何连接局域网内部其它机器上的ACCESS数据库
只看楼主
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
得分:0 
真的是有点奇怪了,我记得以前试过可以用这个办法实现你的要求的。现在什么试不成功了。 但我试出了这样的方式: 就是把运行文件也放到那个目录下就什么问题都解决了。 你要访问的那个数据库无非就是要读取它的数据库内容啊,再多一点就是把它的内容加到现有数据库中去。这二点都可以办到。 但我现在只试出把asp文件也放到那个目录里去的办法。其它的办法也试不出。但我记得是可行的(以前试成功过)。 我现在的办法你看看对你有没有用: 还是建一个虚拟的目录,比如a目录指向另一台机子你的目录下。访问的方式比如:http://127.0.0.1/a 在它的目录下访问本目录下的数据库总不要我教了是吧?什么显示,什么打印,什么对本地的库进行操作都不成问题的。但要打开原有的数据库(服务器上的数据库)你只要使用绝对路径就可以了,比如 DB_name="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "d:\aaa\a.mdb" set conntmp=server.createobject("ADODB.CONNECTION") conntmp.open DB_name 注意:那个d:\aaa\a.mdb是服务器的绝对路径。 这样你两边的数据库都能访问,你就可以在虚拟目录下完成所有你想做的事了。 只是可能安全上不太好。 使用绝对路径访问网上邻居为什么提示无法访问(提示被独占或无权)我还不太清楚,不谁知道?比如 DB_name="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "\\计算机名\aaa\a.mdb" set conntmp=server.createobject("ADODB.CONNECTION") conntmp.open DB_name 或: DB_name="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("a/a.mdb") set conntmp=server.createobject("ADODB.CONNECTION") conntmp.open DB_name 注意:那个a目录就是我说的虚拟目录。 它会被解译为\\计算机名\aaa\a.mdb的。 我猜想应该是我的目录访问权限的问题了,可能联到98的机子上就不会说不能访问了。以前我试成功时好象另一台机子是98的。现在我的另一台也是2000的并且是NTFS格式的。

[此贴子已经被作者于2005-1-6 14:19:56编辑过]


2005-01-06 14:03
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
得分:0 
瓦,原来翻页了,我还以为没人理我的问题呢.
tang668看来是试成功过.可惜我的成功不了.

没关系,现在我已经把所有的ACCESS数据库导入到SQL里面去了.成了一个表,
最终导致的结果是:该表共有两百多万行,所以查询速度极慢,根本无法忍受.
有没有老兄知道该如何将其优化,或者采取别的办法,让查询变快点呢?
2005-01-06 19:14
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
得分:0 
方法一、建立必要的索引,还有要把你的SQL语句优化一下。
比如说:
sql="select sum(销售额) as a from 销售表"
rs.open SQL,conntmp,3,1
销售额=rs("a")
就比
sql="select 销售额 from 销售表"
rs.open SQL,conntmp,3,1
for n=1 to rs.recordcount
   销售额=销售额+rs("销售额")
   rs.movenext
next
得到的销售额来得慢(这个慢是我自己试出来的,为什么我不清楚)。
方法二、把它们归类归一下然后分表啊。不要把它们放到一个表里,用到那个表调用那张表就是了。

[此贴子已经被作者于2005-1-6 19:49:20编辑过]



2005-01-06 19:38
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
得分:0 
恩,果然高手.我也想到尝试你说的第二种办法,但是这样就会关联到两个或多个表的查询.
目前我是采用以下方法在查询:(其中XXX是表名,a,b,c,d,e是我要找的栏位),
sql="select a,b,c,d,e from XXX where id='"&name&"' and b between '"&yy&""&mm&""&dd&"' and '"&yy2&""&mm2&""&dd2&"' order by b"
set rs=server.createobject("adodb.recordset")
rs.open sql,connTel,1,1
各个表的命名规则是XXX开头,后紧接yy(或者yy2)然后紧接"-"(中间横线)然后紧接mm(或者mm2).那么我该如何根据变量yy,mm和yy2,mm2的值来确定调用到哪些表呢?
这样写行不:
sql="select a,b,c,d,e form XXX"&yy&"-"&mm&" inner join XXX"&yy2&"-"&mm2&" on XXX"&yy&"-"&mm&".name=XXX"&yy2&"-"&mm2&".name where后面条件和以前的语句一样"
还没有尝试,因为考虑到有时YY,MM和YY2,MM2变量值相等的话,如何实现?
还请赐教!谢了!
2005-01-06 20:18
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
得分:0 
继续求教!!!
2005-01-06 20:24
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
得分:0 
加个判断分别给出SQL。

2005-01-06 20:39
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
得分:0 
加个判断?恩,好提议,
不过麻烦兄弟给个写法先.加在SQL之前?
2005-01-06 20:56
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
得分:0 
会WEB疯狂,
是工作中的,要不自己玩,就没这么着急了
2005-01-06 21:07
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
得分:0 
我是兼带写写这个东东玩一下.
2005-01-06 21:21
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
得分:0 
再说了,我觉得ASP够用,而且好用,有 什么不妥滴?
2005-01-06 21:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-10637-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063373 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved