设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 6518|回复: 19
打印 上一主题 下一主题

ADP开发思考(一)——数据库连接

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2014-12-15 10:53:35 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
ADP与传统的Access应用程序的最大不同就是用ADO作为数据处理的接口,而传统的Access应用程序则是采用DAO。那么当然就有些基于DAO的命令和函数不能在ADP中使用,如,CurrentDB()、OpenRecordset()等。

ADP有一个默认的ADO连接,该连接是用于ADP连接当前的SQLServer数据库。有了这个连接,就能非常方便在窗体和报表中绑定记录源,使得应用程序的开发与传统的Access应用程序开发非常类似和快捷(这是比其它开发工具更强大的地方,如VB/C#等)。这样一来就可以使用Docmd对象的RunSQL命令、Application应用程序对象的DLookup的D类函数。

但是ADP连接SQLServer时,就会获取SQLServer数据库的架构信息,如表、视图、存储过程等,这些都是需要占用网络、需要时间的。由于C/S开发的一个原则是尽量少占用数据库的连接,使用完毕应该立即断开数据库连接,所以,一个的ADP应用程序,应该保持最短的连接时间,以释放SQLServer服务器资源。但是,如果频繁的断开和连接数据库,必然会影响应用程序的速度。

那么,有没有可能用另一个ADO连接代替ADP的默认连接以避免上述问题呢?

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖2 订阅订阅

点击这里给我发消息

2#
 楼主| 发表于 2014-12-16 09:35:58 | 显示全部楼层
有道理。

不过,连接池是指将的连接资源保存在连接池中,重新连接时,可以迅速将资源分配给客户端。不代表客户端断开连接后,客户端还连接着数据库。

虽然,有连接池ADP重新连接数据库,可以效率很高,但不排除它会重新获取数据库架构信息。连接池只能提高服务器的效率,不能降低ADP对带宽的影响。

好像只有SQLServer 2005以上的版本支持连接池吧。

点评

zhu兄的SQL Server(MSDE)简易管理器到哪个版本了,来晚了  发表于 2014-12-16 13:41

点击这里给我发消息

3#
 楼主| 发表于 2014-12-16 19:53:36 | 显示全部楼层
SQLServer的连接有多种,用得最多的管道协议、TCP/IP协议和共享内存,其中,TCP/IP是基于SOCKET。

点击这里给我发消息

4#
 楼主| 发表于 2014-12-19 10:29:03 | 显示全部楼层
想来想去,我觉得动态连接连接ADP比使用另一个ADO连接还是要好些。

如果,使用另一个ADO连接,虽然可以节约一些带宽,但是设计变得麻烦很多,还要去管理连接,这是其一;其二,会损失一些ADP(也就是Access)本身的功能。有了这两点,就会丧失ADP(Access)本身快捷开发的优势。

得出这样一个结论来,那么如何更有效地管理ADP本身的连接就很重要。


另外,能不能两个连接(ADP本身+另一个ADO连接)合理使用。如,有数据绑定时使用ADP本身的连接,不是绑定时使用另一个ADO连接,那又会怎么样呢?

ADO连接没有事件,ADP的连接同样如此。

暂时只想到这么多。呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-9 04:26 , Processed in 0.073626 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表