|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了. 另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们)法式|功能 5、利用纪录集时是不是应当创立独自的毗连对象?
要准确地回覆这个成绩,咱们必需剖析两种分歧前提下的测试:第一,页面只要一个数据库事务;第二,页面有多个数据库事务。
在前例中,咱们创立了一个独自的Connection对象并将它赋给Recordset的ActiveConnection属性。但是,如ADO__03.asp所示,咱们也能够直接把毗连串赋给ActiveConnection属性,在剧本中初始化和设置装备摆设Connection对象这一额定的步调可以省去。
objRS.ActiveConnection = Application("Conn")
固然Recordset对象仍然要创立一个毗连,但此时的创立是在高度优化的前提下停止的。因而,与上一次测试比拟,页面开支又下落了23%,并且如预期的一样,单个纪录的显示工夫没有本色的变更。
因而,咱们的第二个划定规矩以下:
l 假如只利用一个纪录集,直接把毗连串赋给ActiveConnection属性。
接上去咱们反省页面用到多个纪录集时,上述划定规矩是不是仍然无效。为测试这类情况,咱们引入一个FOR轮回将前例反复10次。在这个测试中,咱们将研讨三种变更:
第一,如ADO__04.asp所示,在每个轮回中创立和撤除Connection对象:
Dim i
For i = 1 to 10
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open Application("Conn")
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.ActiveConnection = objConn
objRS.CursorType = 0 'adOpenForwardOnly
objRS.LockType = 1 'adLockReadOnly
objRS.Open Application("SQL")
If objRS.EOF Then
Response.Write("No Records Found")
Else
'write headings
...
'write data
...
End If
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
Next
第二,如ADO__05.asp所示,在轮回里面创立Connection对象,一切纪录集同享该对象:
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open Application("Conn")
Dim i
For i = 1 to 10
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.ActiveConnection = objConn
objRS.CursorType = 0 'adOpenForwardOnly
objRS.LockType = 1 'adLockReadOnly
objRS.Open Application("SQL")
If objRS.EOF Then
Response.Write("No Records Found")
Else
'write headings
...
'write data
...
End If
objRS.Close
Set objRS = Nothing
Next
objConn.Close
Set objConn = Nothing
第三,如ADO__06.asp所示,在每个轮回内把毗连串赋给ActiveConnection属性:
Dim i
For i = 1 to 10
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.ActiveConnection = Application("Conn")
objRS.CursorType = 0 'adOpenForwardOnly
objRS.LockType = 1 'adLockReadOnly
objRS.Open Application("SQL")
If objRS.EOF Then
Response.Write("No Records Found")
Else
'write headings
...
'write data
...
End If
objRS.Close
Set objRS = Nothing
Next
就象咱们可以料想到的一样,在轮回内创立和撤除毗连对象是效力最差的办法。不外,使人惊奇的是,在轮回内直接把毗连串赋给ActiveConnection属性只比同享单个毗连对象略微慢了一点。
虽然如斯,第三划定规矩应当为:
l 统一页面内用到多个纪录集时,创立单一的毗连对象并经由过程ActiveConnection属性同享它。
</p> 楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。 |
|