地址簿应用程序包括下列命令按钮:
下列 HTML 语句定义“查找”按钮。该 HTML 语句出现在程序的 VBScript 节之前。请将该控件复制并粘贴在 HTML 命令按钮的注释后面。
<INPUT TYPE=BUTTON NAME="Find" VALUE="Find">
单击“查找”按钮可激活 VBScript Find_OnClick 子过程,该过程建立并发送 SQL 查询。在工程完成之后,请单击该按钮填充数据网格。
建立 SQL 查询
Find_OnClick 子过程的第一部分建立 SQL 查询(一次一个短语),方法是向全局 SQL SELECT 语句追加文本字符串。该字符串以设置变量 myQuery 为 SQL SELECT 语句开始,SQL SELECT 从数据源表中请求所有数据行。请将此代码复制并粘贴到打开 SCRIPT 标记的后面。
Sub Find_OnClickmyQuery = "Select FirstName, LastName, Title, Type, Email, " _ & "ManagerEmail, Building, Room, Phone from Employee"
然后,子过程扫描地址簿的四个输入框。请复制并粘贴该代码到“查找”子程序中。
If (SFirst.Value <> "") Then myQuery = myQuery + " where FirstName like '" + SFirst.Value + "%'" End If IF (SLast.Value <> "") Then myQuery = myQuery + " where LastName like '" + SLast.Value + "%'" End If If (STitle.Value <> "") Then myQuery = myQuery + " where Title like '" + STitle.Value + "%'" End If If (SEmail.Value <> "") Then myQuery = myQuery + " where Email like '" + SEmail.Value + "%'" End If
每个“If”语句检查相应的文本框中的内容。如果文本框包含文本,则执行“Then”语句,将引号内的文本追加到包含在变量 myQuery 中的全局 SELECT 语句。由于程序在建立 SQL 语句时使用单词“like”,查询将采用子字符串搜索,而不是完全匹配。
例如,如果“姓”框包含条目“Berge”并且“标题”框包含条目“程序管理员”,则 SQL 语句(myQuery 的值)将读取:
Select FirstName, LastName, Title, Email, Building, Room, Phone from Employee where lastname like 'Berge%' and title like 'Program Manager%'
如查询成功,则所有姓中包含“Berge”的人(如 Berge 和 Berger),以及职务包含“程序管理员”的人(例如,“程序管理员”,“高级技术”)都被显示在数据网格中。
准备和发送查询
子过程 Find_OnClick 的最后部分包含两个语句。第一个语句将 SQL 对象的 RDS.DataControl 查询属性赋给动态建立的 SQL 查询。第二个语句使 RDS.DataControl 对象 (SControl) 查询数据库,然后显示网格中查询的新结果。请复制并粘贴该代码到查找子程序中。
SControl.SQL = myQuery SControl.Refresh End Sub
下列 HTML 语句定义“清除”按钮。该 HTML 语句出现在程序的 VBScript 节之前。请复制并粘贴该代码到 Find HTML 按钮之后。
<INPUT TYPE=BUTTON NAME="Clear" VALUE="Clear">
标记 INPUT 定义如按钮,选项按钮,复选框,或文本之类的元素。使用 TYPE 参数可指定元素,在这里即是按钮。参数 NAME 定义按钮在代码中被调用的内容。参数 VALUE 指定与显示在网页中的按钮 (Clear) 相关联的标签。
单击 Clear 按钮可激活 VBScript Clear_OnClick 子过程。请复制并粘贴该代码到标记 SCRIPT 和 /SCRIPT 之间。
Sub Clear_OnClick SFirst.Value="" SLast.Value="" STitle.Value="" SEmail.Value="" End Sub
执行子过程时,通过 ID 标记的参数 NAME 标识的四个输入框, 都被初始化。属性 .Value 指示显示在 Web 页中的文本框对象的字符。该过程用 0 长度串 ("") 替换所有文本,为新的查找做准备。
下列代码定义“更新配置文件”按钮。该 HTML 语句出现在程序的 VBScript 节之前。请复制并粘贴该 HTML 控件在“清除”按钮之后。
<INPUT TYPE=BUTTON NAME="Update" VALUE="Update Profile">
标记 INPUT 定义如按钮,选项按钮,复选框或文本之类的元素。参数 NAME 定义代码中按钮被调用的内容。参数 TYPE 指定窗体元素的类型 — 在这里即是按钮。参数 VALUE 指定与按钮(“更新配置文件”)关联的标签。
单击“更新配置文件”按钮可激活 VBScript Update_OnClick 子过程,该子过程执行 RDS.DataControl 对象 (SControl) 的 SubmitChanges 和 Refresh 方法。请复制并粘贴该代码到标记 SCRIPT 和 /SCRIPT 之间。
Sub Update_OnClick SControl.SubmitChanges SControl.Refresh End Sub
执行 SControl.SubmitChanges 时,程序将所有更新信息打包,通过 HTTP 发送到服务器。更新要么全部更新要么不更新。如果部分更新不成功,将不做任何变更,并返回状态信息。在远程数据服务中,SControl.Refresh 不一定必需跟在 SubmitChanges 的后面,但这样可确保数据得以刷新。
下列代码定义“取消更改”按钮。该 HTML 语句出现在程序的 VBScript 节之前。请复制并粘贴该 HTML 控件到“更新”按钮之后。
<INPUT TYPE=BUTTON NAME="Cancel" VALUE="Cancel Changes">
单击“取消更改”可激活 VBScript Cancel_OnClick 子过程,执行 RDS.DataControl 对象 (SControl) 的 CancelUpdate 方法。请复制并粘贴该代码到标记 SCRIPT 和 /SCRIPT 之间。
Sub Cancel_OnClick SControl.CancelUpdate End Sub
执行 SControl.CancelUpdate 时,它将放弃自从上一次查询或更新以来用户对数据网格上雇员记录所作的任何编辑。由此恢复初始值。