这就是这个组件的全体内容。很分明,咱们把它复杂化了,如许才干很快地显示其包括的内容,但实践上关于能在组件里放甚么并没有任何限制。在本书第1 3章到第1 8章会看到更多的有关若何做和为何要如许做的例子。
10.3.2 DataSpace对象
D a t a S p a c e对象是担任与办事器停止通信的客户端对象。它的义务是供应一种办法,从客户端创立办事器端组件,同时答应在客户机和办事器之间传输数据。
固然听起来有些庞杂,但实践上倒是十分复杂。在Web页面上创立一个D a t a S p a c e对象,再利用D a t a S p a c e对象创立办事器端组件。
创立一个D a t a S p a c e对象有两种办法。第一种办法利用< OBJECT>标志:
两种办法的次要区分在于:利用< OBJECT>标志时, D a t a S p a c e对象只在页面加载时才创立。利用剧本手艺意味着当剧本运转时,就创立了D a t a S p a c e对象。假如想延迟对象创立以使页面加载得快一些,那末可使用剧本手艺。
使用D a t a S p a c e对象创立办事器组件
一旦创立了D a t a S p a c e对象,可使用C r e a t e OBJECT办法创立办事器端对象。
在这里,P ro g I D应当是Wr o x P u b s . p u b s。上面以一个完全的例子具体申明。
(1) 创立组件和获得数据
假定p u b s类有两个办法, g e t A u t h o r s和s e t A u t h o r s,用于读取和更新a u t h o r s表。在创立组件之前,先创立一个RDS数据控件来寄存和绑定命据。注重,这里没有毗连的细节。
这里创立了D a t a S p a c e对象的一个实例,然后利用C r e a t e OBJECT办法创立办事器端对象。这里,指定了对象和Web办事器的称号。在本例中将Web办事器的名字设为l o c a l h o s t,它应当是办事器的实践称号。这不是一个平安成绩,由于用户正在与Web站点毗连。
如今,变量o b j P u b s是Wr o x P u b s . p u b s对象的一个实例,可以像利用其他对象一样挪用其办法。
在这类情况下,数据控件体现得就像本人在获得数据一样,独一分歧的是咱们已从组件中供应了数据。
(2) 利用组件更新数据
读者能够想晓得利用办事器端组件时,若何更新数据?不克不及利用数据控件的S u b m i t C h a n g e s办法,由于数据控件没有毗连的细节,因而不晓得数据从哪里来。既然纪录集是一个尺度的断开毗连的纪录集,其数据又是由办事器组件供应的,那末组件仿佛应当晓得数据的来历?是的。因而需求把这个断开毗连的纪录集传给办事器组件,它会履行批处置更新。
为了完成这一点,起首从数据控件中掏出纪录集,然后将其作为参数传给办事器对象的办法。
实践上这相当复杂。
10.3.3 利用办事器端组件的长处
那末办事器端组件最大的特征是甚么?看一下它的长处:
? 毗连细节对用户不成见,为咱们供应了一个更平安的体系。同时,组件也必需被注册,这又是一道附加的平安限制。
? 可以用任何兼容C O M的言语来创立组件。在例子中利用Visual Basic的缘由是由于V B轻易了解,但假如需求也能够利用V C + +或D e l p h i。这答应开辟人员利用本人最熟习的言语。
? 创立的组件并只不局限于前往和更新纪录集。可构建大批封装的营业逻辑作为数据处置的一局部。
? 可以在s e t R e c o RDS e t办法中封装全体抵触处置的代码,而只前往毛病的具体申明。这标明客户端剧本是标准的。同时,也意味着用户没法盗取你精心编写的代码。
本书的下一节会具体引见组件的长处。
10.3.4 注册办事器端组件
在后面已经说过,在Web阅读器中创立一个办事器组件之前必需修正注册表。为了让RDS能利用组件,必需将组件的P r o g I D添加到上面的注册表键中:
完成的最好办法是利用Visual studio的Package and Deployment Wi z a r d创立一个Internet下载软件包(Internet Download Package)。假如选择了Safe for Initialization和Safe for Scripting这两个选项,那末当软件包装置到办事器时,将会更新注册表。假如的确需求失掉组件的类I D,那末这个导游也能创立一个HTML文件,外面是一个带有组件类I D的<OBJECT>标志。
10.3.5 自界说处置器
RDS数据控件是一个优异的客户端东西,可在客户端处置大批的数据。大多半例子已标明数据控件利用的是固定的数据集,好比a u t h o r s表。但是,静态数据绑定的例子标明了也能够让用户决意本人想要检索的数据。这可以经由过程创立按钮来完成,可为用户供应一个文本框来输出表名,乃至输出SQL查询字符串。
固然,这增添了RDS数据控件的天真性,但倒是以就义平安性为价值的。假如用户对数据的利用局限不受限制,他们要末会感觉凌乱,要末就想偷看那些保密的财政数据。因此咱们需求的是一种天真的,但又受必定限制的检索数据的办法。
为了做到这一点可使用一个处置器,可以在毗连字符串或号令履行之前修正它们。
处置器是一个包括四局部内容,分离由回车符分隔的文本文件:
? Connect节:肯定毗连字符串。
? SQL 节:肯定SQL语句和号令。
? UserList节:肯定用户。
? Logs 节:肯定日记纪录才能。
该文本文件名缺省为M s d f m a p . i n i,装置在Wi n d o w s缺省目次中。
1. Connect节
Connect节答应掩盖毗连字符串和会见细节,由上面两个条目之一标识:
? [connect default] 指有缺省的毗连细节。
? [connect Connect i o n N a m e] 指知名为Connect i o n N a m e的毗连的细节。
在该节有两对称号/值,如表1 0 - 6所示。
这里的值掩盖了Connect节中的会见权限值。
为了准确利用U s e r L i s t节,办事器必需可以验证用户,因而这取决于办事器上的验证划定规矩。例如,假如利用匿名会见,那末一切用户城市以Web站点中I I S办理属性所指定的缺省用户身份毗连到办事器。
4. Logs节
Logs节答应指定一个写入毛病的文件名由[Logs]标识。日记纪录使用于一切毗连。假如此日记文件不存在则会创立一个新的日记文件。