在ASP中用集合成批操作数据库
我们知道,一般的关系数据库(如SQL Server、Oracle、Access等)中的查询操作是支持集合操作的,例如可以用“Update ATable Set Field1 = AValue where Field2 in (Value21,Value22)”来完成对数据库的成批更新操作。我们可以充分利用数据库的这种集合特性来提高ASP页面操作数据库的效率。如我们可以在页面上列出多个记录,让用户选择要操作的记录,然后在用户确定操作后进行成批操作,这与一个记录操作一次的方法相比效率明显要高的多了。
一、HTML的集合属性
首先,让我们来熟悉一下HTML的集合属性。在表单(FORM)数据或查询(Query)参数中,当提交的多个参数采用同一个名称时,这些参数值将构成一个集合,在ASP页面可以获取这些参数值或同名参数的个数。如在下面的页面(Set.HTM)中,6个复选框采用同一个参数名MyCheckBox,其值分别为1、2、3、4、5、6。
| 以下是引用片段: 〈!-- Set.HTM --〉 〈html〉〈head〉〈title〉集合属性应用〈/title〉〈/head〉〈body〉 〈p〉请选择要操作的项目,提交数据后,将会显示您选择的项目。 〈form method="POST" action="set.asp"〉 〈br〉1、〈input type="checkbox" name="MyCheckBox" value="1"〉 〈br〉2、〈input type="checkbox" name="MyCheckBox" value="2"〉 〈br〉3、〈input type="checkbox" name="MyCheckBox" value="3"〉 〈br〉4、〈input type="checkbox" name="MyCheckBox" value="4"〉 〈br〉5、〈input type="checkbox" name="MyCheckBox" value="5"〉 〈br〉6、〈input type="checkbox" name="MyCheckBox" value="6"〉 〈br〉〈input type="submit" value="提交数据" name="B1"〉 〈/form〉〈/body〉〈/html〉 |
当客户端选择了要显示的项目后,下面的ASP页面(Set.ASP)给出客户端选择的项目个数及其值。
| 以下是引用片段: 〈!-- Set.ASP --〉 〈%@ LANGUAGE = VBScript %〉 〈html〉〈head〉〈title〉集合操作测试〈/title〉〈/head〉 〈body〉 〈% Response.Write "〈br〉您一共选择了"&request("MyCheckBox").count&"项," Response.Write "〈br〉您选择的项目有:"&request("MyCheckBox") %〉 〈/body〉〈/html〉 |
如当客户端选择了第二、三、五项并提交数据后,将会看到如下结果:您一共选择了3项,您选择的项目有:2, 3, 5
应该注意到,“2, 3, 5”的形式与SQL语句要求的形式是一致的,我们可以直接或间接地利用这种形式的结果,如 "Select * from ATable where AFiled in(" & request("MyCheckBox") & ")"的实际SQL查询语句为“Select * from ATable where AFiled in(2, 3, 5)”。