Cnn.Execute "DELETE jobs Where job_id > 14"
Cnn.Close: Set Cnn = Nothing
%>
本例中,新增(Insert)和修改(Update)要么同时发生,要么都不发生,不会出现新增一条数据,而修改却因为语句错误未发生的情况。在数据库编程时使用事务是一个非常好的习惯。
四、多个记录集的处理
有时候我们需要同时取得两个表的数据,如果放在一条SQL语句中返回,则可以减少网络传输并提高运行效率。
例wuf64.asp,这个例子还顺带讲解了如何使用循环输出字段值(而以前我们都是用“rsTest(0) & rsTest(1) & …”这样的笨方法输出的,如果只有两三个字段,用这种方法显然更简洁),如果一时看不明白,请下载简单一点的wuf63.asp,切记!。
<%@ LANGUAGE="VBSCRIPT" %>
<%
Option Explicit
Response.Expires = 0
Dim Cnn, StrSQL, rsTest, I
Set Cnn = Server.CreateObject("ADODB.Connection")
Cnn.Open "Provider=sqloledb; User ID=sa; Password=; Initial Catalog=pubs; Data Source=ICBCZJP"
Set rsTest = Server.CreateObject("ADODB.Recordset")
'检索多个记录集
StrSQL = "Select COUNT(*) AS '雇员数' From employee; Select * From jobs"
rsTest.Open StrSQL, Cnn ', , ,adCmdText
While Not rsTest Is Nothing
Response.Write "<Table Border = 2><tr>"
'rsTest.Fields.Count - 记录集字段个数
For I = 0 To rsTest.Fields.Count - 1
'rsTest(I).Name - 第 I 个字段的字段名
Response.Write "<td>" & rsTest(I).Name & "</td>"
Next
Response.Write "</tr>"
While Not rsTest.EOF
Response.Write "<tr>"
'用循环输出每一个字段的值
For I = 0 To rsTest.Fields.Count - 1
Response.Write "<td>" & rsTest(I) & "</td>"
Next
Response.Write "</tr>"
rsTest.MoveNext
Wend
'读取下一个Recordset对象
Set rsTest = rsTest.NextRecordset
Wend
Cnn.Close
Set rsTest = Nothing: Set Cnn = Nothing
%>
说明:SQL Server数据库支持多个记录集,而Access数据库不支持。
五、 尽早关闭连接,释放资源
在以往的例子中,都是最后关闭连接,然而Connection对象要占用资源,事实上,按下面wuf65.asp所提供的方法,完全可以更早一点关闭连接。
<% @LANGUAGE = VBScript %>
<!--#include file="AdoAccess.asp"-->
<!--#include file="adovbs.inc"-->
<% ' wuf65.asp
Dim StrSQL, rsTest
StrSQL = "Select * From 运货商"
Set rsTest = server.CreateObject("ADODB.Recordset")
'一定要使用客户端游标, 否则不行
rsTest.CursorLocation = adUseClient
rsTest.Open StrSQL,Cnn,,,adCmdText
'删除记录集对 Connection 对象的依赖
Set rsTest.ActiveConnection = Nothing
'尽可能早的关闭连接
Cnn.close: Set Cnn = Nothing
Do While Not rsTest.EOF
Response.Write rsTest(0) & " " & rsTest(1) & " " & rsTest(2) & " " & "<BR>"
rsTest.MoveNext
Loop
Set rsTest = Nothing
%>
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



