设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

各位版主,ADP与SQL连接如何提高速度,谢谢!!

[复制链接]
跳转到指定楼层
1#
发表于 2004-7-20 00:57:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人目前正在为公司开发仓库管理程序,采用ADP与SQL结构。在本地局域网中程序运行正常,且速度较快。目前公司涉及外地仓库,为此远端ADP通过外地宽带与公司SQL连接,程序能运行,但程序每打开或关闭一个窗体时,都需大约2分钟才能完成,其速度实在无法接受(其实数据量很小),但打开后数据录入速度又可以。请各位版主、高手给予指教,小弟先谢了!!![em06]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2004-7-20 08:09:00 | 只看该作者
本来就想在这方面写一些东西,不过最近家事缠身。如果有可能,请楼主先发个例子上来,具体要求是,窗体图片,以及该窗体(包括子窗体)的所有VBA代码。我可以先帮你分析一下。
3#
发表于 2004-7-20 09:01:00 | 只看该作者
当然,主窗体和子窗体们的数据源也写一下。
4#
发表于 2004-7-20 21:29:00 | 只看该作者
xsxkw朋友,快点行动.我们可是很想知道的哦.
5#
发表于 2004-7-21 01:51:00 | 只看该作者
窗体数据源不要绑定.
6#
发表于 2004-7-21 07:26:00 | 只看该作者
上面说得很对,基本思路就是这样。不过,仅仅如此便不能最大限度地利用ACCESS的快速设计功能。更好的办法是这样的:设计时利用绑定的数据源,过后也不需要删除,然后再在窗体的load,open或current事件中将窗体的数据源改成T-SQL语句。有时候,即便这样做了,速度提高的程度还是不够要求,这时,应该修改窗体数据源的T-SQL语句,使之在加载或打开的时候只从相关表中取一条记录,而子窗体甚至可以取一个空记录(为什么可以这样?因为,一般工作流程是打开窗体,定位需要的记录,然后再处理,所以,一开始窗体并不需要一个具体的记录,或者说,一开始显示的记录,基本上不会是你立即需要的记录-除非该窗体是一个查询结果显示。这类往返除了浪费带宽和服务器资源,没有值得一提的好处),这样就能使任何复杂的窗体都能飞快地打开。下次如时间允许做例子给大家交流。最后补充一点,下拉列表等如果有大量记录,也需要充分考虑,有时候甚至要修改整个设计思路,或者令ADP前端每次只取少量数据,不过这也许不是最佳解决方法。按我的看法,在一个庞大的下拉列表中选择不会是一个令人愉快的设计。先举个最简单的例子,一个表,例如mytbl,主键是id,自动从整数1开始以1为步长增加,原先窗体的数据源绑定是这样的dbo.mytbl或者SELECT * FROM mytbl,现在,你要这么写绑定的数据源:SELECT * FROM mytbl WHERE id=1,或者甚至SELECT * FROM mytbl WHERE id=0都可以。也许有人会问,然后怎么办?我希望各位看官能够明白,用记录浏览器在成千上万个记录中逐个浏览也不是什么良好的设计,例如一个订单数据库,我更喜欢的办法是让订单窗体在打开时默认显示一段时期(例如最近一年)的订单号码,放到一个listbox中,然后在listbox中选择订单号码,随后listbox_afterupdate中令窗体recordSource="SELECT * FROM tbl_Orders WHERE orderID=" & listbox.value等....希望能有所启发。
7#
发表于 2004-7-21 21:21:00 | 只看该作者
很好!
8#
发表于 2004-8-10 01:36:00 | 只看该作者
多謝阿羅兄!
9#
发表于 2004-8-10 03:32:00 | 只看该作者
补充阿罗一点,很多有参数返回记录集使用存储过程会更快些.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-4 06:40 , Processed in 0.118818 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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