令中国铁道出版社 9.2数据库查询泡 Customers数据表共有1个字段,假设我们要查询的数据共有5 个字段,它们分别是 CustomerID、 CompanyName、 ContactName ContactTitle及Ciy。通常在第一次编写的ASP程序代码中,有关数 据库的SQL查询语言会这样写: SELECT FROM Customers 得到的查询结果是将上述的5个字段数据全部显示在网页上, 如下图际示。 年日日 整个的查询结果在浏览器 Normwnd Database Larng Demo 中需要显示好几页,用户 必须利用滚动条( Scroll bar) 上下移动,才能看完所有 的信息。这种程序的写法 最为简单,但是会消耗太 多的系统资源,使得系统 执行的效率降低
6 9.2 数据库查询范例 Customers数据表共有11个字段,假设我们要查询的数据共有5 个字段,它们分别是CustomerID、CompanyName、ContactName、 ContactTitle及City。通常在第一次编写的ASP程序代码中,有关数 据库的SQL查询语言会这样写: SELECT * FROM Customers 得到的查询结果是将上述的5个字段数据全部显示在网页上, 如下图所示。 整个的查询结果在浏览器 中需要显示好几页,用户 必须利用滚动条(Scroll Bar) 上下移动,才能看完所有 的信息。这种程序的写法 最为简单,但是会消耗太 多的系统资源,使得系统 执行的效率降低
令中国铁道出版社 9.2数据库查询泡 为了改善上述的缺点,我们将ASP程序代码(c9-1asp列出来, 以供读者参考: <9 dim Conn rs Set Conn= Server Create Object("ADODB Connection Conn Open"Driver=SQL Server); Database=northwind Server- Local); uid=sa, pwd Set rs= Server CreateObject("ADODB. Recordset") sql ="select from Customers order by CustomerID rsopen sql, conn, 3, 2 <html> <body> center> <font face="Arial "size=5>SQL Server<br> Northwind Database Listing demo</font> <table border=0 cellpadding=0 cellspacing-I width=100%> <tr bgcolortccccd7> (7
7 9.2 数据库查询范例 为了改善上述的缺点,我们将ASP程序代码(ch9-1.asp)列出来, 以供读者参考: <% dim Conn, rs Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Driver={SQL Server};Database=northwind; Server=(Local); uid=sa;pwd=" Set rs = Server.CreateObject("ADODB.Recordset") sql = "Select * from Customers order by CustomerID" rs.open sql, conn, 3, 2 %> <html> <body> <center> <p> <font face="Arial" size=5>SQL Server<br> Northwind Database Listing Demo</font> </p> <table border=0 cellpadding=0 cellspacing=1 width=100%> <tr bgcolor=#ccccd7>
令中国铁道出版社 9.2数据库查询 h9-1asp(续) <td> Company Name<td> <td> ContactName</td> <td>ContactTitle</td td>City </td i=0 do while not rs eof If i mod 2=0 Then 偶数行颜色为d0色 设置奇 数行与偶数行 Color ="#ddddd7 Else Color ="#eeeeef 奇数行颜色为 eeeeef End If Response. Write("<TR BGCOLOR=+ Color + > Response. Write(<td>+rs(CustomerID")+</td> Response. Write ("<td>+rs("Company Name)+ </td>) Response. Write("<td>+rs(ContactName)+</td>
8 9.2 数据库查询范例 ch9-1.asp (续) : <td>CustomerID</td> <td>CompanyName</td> <td>ContactName</td> <td>ContactTitle</td> <td>City</td> </tr> <% i = 0 do while not rs.eof i = i + 1 If i mod 2=0 Then '设置奇数行与偶数行的颜色 Color = "#ddddd7" '偶数行颜色为ddddd7 Else Color = "#eeeeef" '奇数行颜色为eeeeef End If Response.Write("<TR BGCOLOR=" + Color + ">") Response.Write("<td>"+rs("CustomerID")+"</td>") Response.Write("<td>"+rs("CompanyName")+"</td>") Response.Write("<td>"+rs("ContactName")+ "</td>")
令中国铁道出版社 9.2数据库查询泡 h9-1asp(续) Response. Write("<td>+rs( ContactTitle)+</td>) Response. Write("<td>+rs("City)+</td> Response. Write(</tr>) MoveNext p %0 </table> /htm> 上面的程序代码虽然可以正确无误的执行,但是还有许多可改 善之处。这些部分经我们整理之后,有两大重点,分别为SQ最优 化与数据分页处理。我们将分别说明如下
9 9.2 数据库查询范例 ch9-1.asp (续) : Response.Write("<td>"+rs("ContactTitle")+ "</td>") Response.Write("<td>"+rs("City")+"</td>") Response.Write("</tr>") rs.MoveNext Loop %> </table> </center> </body> </html> 上面的程序代码虽然可以正确无误的执行,但是还有许多可改 善之处。这些部分经我们整理之后,有两大重点,分别为SQL最优 化与数据分页处理。我们将分别说明如下:
令中国铁道出版社 9.2数据库查询泡 921SQ最优化 ·922数据分页的处理
10 9.2 数据库查询范例 • 9.2.1 SQL最优化 • 9.2.2 数据分页的处理