|
在传统的以SQLServer数据库为基础的Access客户/服务器开发方案中,数据库的操作是基于链接表、传递查询以及ADO等接口技术来实现的。其中,链接表技术和传递查询是通过ODBC来连接数据库。
这样出现了一个问题,那就是ODBC缓存的问题,大家可能实验过,如果,在数据库中已经有一个链接表能正常登录服务器链接数据库中的表,那么其它的链接到这个数据库的链接表就不用通过安全验证也能链接数据表,这样的好处就是只要一次连接成功,其它的链接表就不用保存密码了。但同样也有一问题,不能控制断开与数据库的连接,当然,如果意外断开了数据库连接,基本上无法再次连接数据库,只有关闭应用程序重新打开才能正常连接。
另外一个问题就是数据缓存问题,在Access选项设置有1000条记录缓存的设置项,平常一般都很少人注意,事实上Access的链接表,是利用DAO对远程数据库的数据表进行模拟,模拟成Access的本地表,便于按Access的常规操作来操作远程数据库中的数据表,这样一来,带来两个方面的问题,第一,应用程序的磁盘占用会快速增长,第二,带来很大的网络流量,增加网络的负担。如果基于这个表再做查询的话,基本上会缓存全部的数据表的内容,那么,对磁盘占用和网络的需求就会大大增加,应用程序的运行就会变得很慢。
于是乎,传递查询的方案就得重要起来,但传递查询的使用要求很高,要求懂得SQLSerever T-SQL语言,而且设计不直观,几乎不是一般的人员可以使用得来、可以掌握得好的。
比较了这些方案之后,人们发现ADO似乎很好地解决了这些问题,没有本地缓存的困扰,连接易于控制,代码也比较简洁,可是一到设计阶段,人们发现使用ADO的不方便,设计程序不直观,绑定数据复杂,并且,不能用ADO记录集作为报表的数据源,使得很多人望而止步。
从Access 2000开始,Access提供的ADP的解决方案,用以解决基于SQLServer数据库的客户/服务器的纯ADO方案,设计直观方便,能像Access本地数据库开发一样直接绑定,报表也能使用ADO记录集,也能使用DLookup类的应用程序函数,使得这种C/S开发方案极为简单,没有了本地缓存的困扰,使用OpenConnection和CloseConnection能够方便地控制连接以保证数据库的安全和正常运行。同时,它还能完成数据库的创建、维护和设计工作,这些是Access传统应用程序无法比拟的优势,使得SQLServer数据库的Access C/S开发一条龙。
当然,这种ADP方案不是没有缺点,第一,没有本地数据,因此离线操作复杂;第二,只有一个数据库连接,连接另一个数据库只能断开当前数据库,或者用ADO连接另一个数据库;第三,连接的数据库只能是SQLServer数据库,当然也能用ADO连接其它数据库。
可惜的是,Access 2013取消了ADP的支持,转移到Access Web数据库上了。但是,Access 2010仍然支持。不管怎么说,ADP仍然不失为一种优秀的开发方案。
ADP的另一个优点就是纯粹应用程序,不像传统的Access应用程序那样包含数据部分,不会因为使用时间长而应用程序的磁盘占用增长,应用程序加载快。
另外,有网友有这样的疑问,ADP保存数据库连接密码,做不到数据库安全,因为,Access就应用程序可能通过链接ADP而访问SQLServer的内容;而不保存数据库密码,每次打开ADP都要提示输入数据库连接登录ID和密码,造成用户的困扰。其实,这根本不是问题,保存密码完全是为了SQLServer数据库设计和ADP应用程序的设计方便,而在真正应用时是不应该保存ADP的数据库连接密码,数据库的连接是要通过OpenConnection来连接数据库和CloseConnecton来断开数据库连接,并通过OpenConnection "Provider=;"来清除ADP的数据库连接信息。这样一来只要在退出ADP之前确保运行如下语句:
- CloseConnection
- OpenConnection "Provder=;"
复制代码
就能保证ADP启动时不出现输入密码的提示框,而通过OpenConnection来连接SQLServer数据库。
ADP的缺陷,可以通过ADO来进行弥补。
一,没有本地数据,可以通过一个本地Access mdb数据库的ADO连接来弥补。
二,对于第二个数据库,同样可以通过第二个ADO连接来弥补。
三,对于其它数据库,也是一样通过第二个ADO连接来弥补。
由于Access应用程序,不管是传统的还是ADP的方案都是长连接方案,服务器负担相对较重。传统的方案无法控制连接,而ADP可以。
综上所述,采用ADP方案进行SQLServer数据库C/S开发是非常不错的。
下面,叙述一下ADP开发方案的基本方法。
一,创建SQLServer数据库。三种方法,1,用新建ADP的方法创建新的SQLServer数据库,此方法适合初学者,缺点:数据库初始大小和增长速度不可控,数据库文件文件位置在SQLServer的Data目录中。2、利用SQLServer的企业管理器或者SQLServer Management Studio创建数据库,此法通用,缺点:需要软件。3、通过ADO连接,直接执行创建数据库的TSQL语句,此法适合高级用户,缺点:要懂VBA、ADO和TSQL。
二,创建数据库对象。四种方法,1,在连接了数据库的ADP中,使用Access创建数据库中的表、索引、视图、函数和存储过程以及触发器,适合初学者;2,利用SQLServer的企业管理器或者SQLServer Management Studio创建这些对象,适合初学者;3,通过ADO连接,使用T-SQL语句创建这些对象,适合有经验的程序员;4,使用利用SQLServer的iSQL/oSQL或者SQLServer Management Studio,使用T-SQL语句创建这些对象,适合有经验的程序员和数据库管理员。
三,用传统的Access应用程序技术创建所需的窗体、报表以及所需的模块和宏。这个时候,ADP已经可以运行起来了。
四,编写控制ADP连接的代码,控制ADP的启动和退出。
五,部署。
对于基于SQLServer数据库使用传统Access的应用程序开发方案的,也可以使用上述ADP的方法来创建数据库和数据库对象,这样就不需要使用任何其它的第三方软件,在Access中完成所有的事情。
|
评分
-
查看全部评分
|