javascript asp教程More About Recordsets
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript asp教程More About Recordsets,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4234字,纯文字阅读大概需要7分钟。
内容图文
![javascript asp教程More About Recordsets](/upload/InfoBanner/zyjiaocheng/385/558c857d68fa4cd3b1562d76cc1f9cdd.jpg)
Below we will attempt to access data from a database without knowing the column names. Clearly the best way to utilize data in your database is to keep track of your schema. Schema is the layout of data in your database. The concept is well beyond the scope of this web site, but it is worth mentioning. Most good resources on SQL will also be good resources on database management. Better database schema leads to better ASP code.
Get Started:
Below is the script for Lesson 18.
<%@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 * FROM colorChart;"; ConnectObj.Open (myConnect); RS.Open(sql,ConnectObj,adOpenForwardOnly,adLockReadOnly,adCmdText); var recordCount = RS.Fields.Count; var x = 0; var getFieldNames = false; Response.Write("<TABLE BORDER=\"1\" CELLSPACING=\"0\">\r"); while (!RS.EOF) { if (x >= recordCount) { x = 0 } Response.Write("<TR>"); if (!getFieldNames) { while (x <= recordCount-1) { Response.Write("<TH>" + RS.Fields(x).Name + "</TH>"); x++; } getFieldNames = true; x = 0; Response.Write("</TR>\r<TR>") } while (x <= recordCount-1) { Response.Write("<TD>" + RS.Fields(x).Value + "</TD>"); x++; } Response.Write("</TR>\r"); RS.MoveNext(); } Response.Write("</TABLE>\r"); RS.Close(); ConnectObj.Close(); RS = null; ConnectObj = null; %> </BODY> </HTML>
Click Here to run the script in a new window.
I don't think this needs much explaining. The
Another Way:
A potentially more elegant way to accomplish this same goal is to use the ADO Method GetRows. It returns a multi-dimensional array containing the Recordset data. WAIT! Aren't JavaScript Arrays lexical (and flat)? Yes. We can emulate multi-dimensional arrays, but in reality they are flat. So it's a no-go on the GetRows... unless we do something really creative.
<%@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 * FROM colorChart;"; ConnectObj.Open (myConnect); RS.Open(sql,ConnectObj,adOpenForwardOnly,adLockReadOnly,adCmdText); var myArray = RS.GetRows().toArray(); Response.Write("Let's see the results of myArray as JavaScript"); Response.Write(" sees them (which is flat).<BR>\r"); Response.Write(myArray + "<BR><BR>\r") RS.MoveFirst(); var myVBArray = new VBArray(RS.GetRows()) Response.Write("We can use the <I>new VBArray</I> constructor and the ") Response.Write("<I>getItem( )</I> method. For example: myVBArray.getItem(1,1) ") Response.Write("returns " + myVBArray.getItem(1,1) + "<BR><BR>\r") Response.Write("Now lets make something useful.<BR>\r") Response.Write("<TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0>") Response.Write("\r<TR>") for (var x=0; x<=myArray.length-1; x++) { Response.Write("<TD>" + myArray[x] + "</TD>") if ((x+1)%RS.Fields.Count==0) { Response.Write("</TR>\r<TR>") } } Response.Write("</TR>\r") Response.Write("</TABLE>") RS.Close(); RS = null; ConnectObj.Close(); ConnectObj = null; %> </BODY> </HTML>
Click Here to run the script in a new window.
Notice when we use getRows( ) we don't get the column names (but that would be really easy to fix). The problem with myArray is that it's not very useful in its raw state. So we use a modulo operator and thanks to a little thing called RS.Fields.Count we can tell how many times we write data to the table before staring a new table row.
If you like the new VBArray constructor you should know that you have the following methods: dimensions() getItem() lbound() toArray() and ubound().
内容总结
以上是互联网集市为您收集整理的javascript asp教程More About Recordsets全部内容,希望文章能够帮你解决javascript asp教程More About Recordsets所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。