Recordset也是一个创建的实例对象,是一个从数据库获取的数据的集合。共有26个属性,25个方法,11个时间以及2个集合。以上一节的例子来仔细研究一下。
<%@LANGUAGE="JavaScript"%>
<!-- METADATA TYPE="typelib"
FILE="C:/Program Files/Common Files/System/ado/msado15.dll" -->
<HTML>
<BODY>
<%
var myConnect = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=";
myConnect += Server.MapPath("//");
myConnect += "//GlobalScripts//htmlColor.mdb;";
var ConnectObj = Server.CreateObject("ADODB.Connection");
var RS = Server.CreateObject("ADODB.Recordset");
var sql="SELECT ID, colorName, hexValue FROM colorChart;";
ConnectObj.Open (myConnect);
RS.Open(sql,ConnectObj,adOpenForwardOnly,adLockReadOnly,adCmdText);
Response.Write("<TABLE BORDER=/"1/" CELLSPACING=/"0/">/r");
Response.Write("<TR><TH>ID</TH><TH>colorName</TH>");
Response.Write("<TH>hexValue</TH></TR>/r");
while (!RS.EOF)
{
Response.Write("<TR><TD>" +RS("ID")+ "</TD><TD BGCOLOR=/"#");
Response.Write( RS("hexValue")+ "/">" + RS("colorName") );
Response.Write("</TD><TD>" +RS("hexValue")+ "</TD></TR>/r");
RS.MoveNext();
}
Response.Write("</TABLE>/r");
RS.Close();
ConnectObj.Close();
RS = null;
ConnectObj = null;
%>
</BODY>
</HTML>
dll(dynamic link library)动态链接库保存了不需要占用内存的一些变量。在使用没有定义的变量的时候,asp首先在dll中查找,所以上面的Recordset.Open()方法中有些没有定义的变量,也可以正常工作。
管理Recordset,首先我们实例化一个recordset,Server.CreateObject("ADODB.Recordset"),然后创建一个文本命令,本例中为sql语句,var sql="SELECT ID, colorName, hexValue FROM colorChart;";。然后打开这个Recordset,Open(),共有5个参数。然后使用循环来依次读取参数。当然最后必须close这个对象。
如果忘记我们需要调用的数据库的结构怎么办呢?(这个不应该发生……)。有几个属性需要记住RS.Fields.Count记录了Recordset的列数。其余的就好办了RS.Fields(x).Name RS.Fields(x).Value都是显而易见的东西了。