过程的最后一步是格式化数据并显示,就是建立一个html输出,步骤如下:
依次循环记录集(recordset)中每一个字段(field),写标题
依次循环记录集和每一个字段,写数值
例程代码将整个的html表格组合为一个长字符串,最后输出到html页面。字符串初始化为如下值:
datatable = "< table >< tr >"
电子数据表的列的必要信息由记录集对象的field集合产生,它包括了一系列字段对象,可以使用它们的name属性建立标题行。
for each ofield in ors.fields
datatable = datatable & "< th >" & ofield.name & "< /th >"
next
datatable = datatable & "< /tr >"
最新打开的记录集(recordset)自动将初始位置指向第一行,使用movenext方法移动记录指针,顺序存取每一行,直到整个记录集的末尾。当到记录集末尾时,属性eof的值变成true,循环结束。在循环中,通过字段集合的列举以及对应的value属性,从而达到单元格数据的存取。
do while not ors.eof
datatable = datatable & "< tr >"
for each ofield in ors.fields
datatable = datatable & "< td >" & ofield.value & "< /td >"
next
datatable = datatable & "< /tr >"
ors.movenext
loop
最后,加上html的表格结束标记,输出整个字符串到页面,形成了动态产生的表格。由于记录集对象不再需要,所以要释放它。
datatable = datatable & "< /table >"
set ors = nothing
response.write datatable
在总结前,有必要说明一个小的定义在电子数据表是如何解释的。
通常,在ado中将一定范围内的第一行解释为一套列标题,尽管在odbc中有明文定义的选项可以禁止这种解释,但我也不愿意在ado中这么做。如果第一行包含数字信息,那么ado中将返回通用的字段名,比如:f1,f2,等等…,这样就不能看到数字的值。而且,ado也会将第一行中的“非字母、非数字”字符替换为符号#。