简化ADO数据库操作的控件(带分页功能)

作者:Rimifon 来源:无忧脚本 时间:2008-05-20 13:15:00 

一个页面执行一次Sql语句的话,不会影响到性能。如果一个页面要执行很多次Sql语句,而且使用的是同一个数据库连接,那么上面的方法可能会影响到性能,因为每执行一次Sql语句都要重新打开和关闭一次数据库连接。

如果存在多次数据操作,推荐使用如下方法:

Set Db = GetObject("script:"&Server.MapPath("DbHelper.sct"))
Db.ConnStr = yourConnStr
Set Rs1 = Db.RecordSet
' 如果存在多个数据库连接可以创建第二个Rs对象:
' Set Rs2 = Db.RecordSet(NewConnStr)
Db.NonQuery Sql1, Rs1
Db.NonQuery Sql2, Rs1
' ........
Rs1.ActiveConnection.Close    'Rs对象使用完后需要关闭数据库连接
' Rs2.ActiveConnection.Close
Set Rs1 = Nothing
'Set Rs2 = Nothing
Set Db = Nothing

创建对象:

Set Conn = Server.CreateObject("Adodb.Connection")
Set Rs = Server.CreateObject("Adodb.RecordSet")
Conn.Open ConnStr

简化后的操作:

Set DB = GetObject("script:"&Server.MapPath("DbHelper.sct"))
DB.ConnStr = ConnStr

查询语句:
仅执行(原):Conn.Execute Sql
仅执行(简):DB.NonQuery Sql

查询一个数据(原):

Rs.Open Sql, Conn
result = ""
If Not Rs.Eof Then result = Rs(0).Value
Rs.Close

查询一个数据(简):

result = DB.Scalar(Sql)

查询分页数据(原):

Rs.Open Sql, Conn, 1, 3, 3
'此处省略处理当前页码等代码n行
C=0
while Not Rs.EOF and C<Rs.PageSize
C = C+1
' 显示数据Rs("FieldName")
Rs.MoveNext
Wend
Rs.Close

简化后的操作:

Set Ds = DB.DataSet(Sql, PageSize, Request.QueryString(Page))
For Each Item In Ds
    If IsObject(Item) Then
        ' 显示数据Item.FieldName
    End If
Next
Set Ds = Nothing

注销对象(原):

Conn.Close
Set Rs = Nothing
Set Conn = Nothing

注销对象(简):

Set DB = Nothing


 

标签:ado,sql,数据库,asp,性能
0
投稿

猜你喜欢

  • go语言分布式id生成器及分布式锁介绍

    2024-01-30 21:20:43
  • 帮你六步改善SQL Server安全规划全攻略

    2009-01-20 15:07:00
  • Python3正则匹配re.split,re.finditer及re.findall函数用法详解

    2023-06-27 10:13:48
  • Python入门教程(五)Python变量的用法

    2021-04-05 11:17:35
  • MySQL的数据库数据备份和恢复详解

    2012-01-29 18:19:07
  • django celery redis使用具体实践

    2022-12-03 02:45:39
  • mysql命令提示行连接乱码的解决

    2024-01-14 11:05:20
  • 使用ASP实现广告代理

    2010-05-27 12:15:00
  • 解读Python脚本的常见参数获取和处理方式

    2022-07-17 03:36:02
  • Python使用plotly绘制数据图表的方法

    2023-04-25 13:19:00
  • 详解Python中的自定义密码验证

    2021-06-05 00:38:59
  • 《CSS权威指南》文摘(1)--块级元素、行内元素

    2008-04-05 13:42:00
  • 基于python的mysql复制工具详解

    2023-06-24 01:08:28
  • WebStorm安装配置教程

    2022-01-17 01:25:24
  • Python try-except-else-finally的具体使用

    2022-10-18 14:31:45
  • Dlib+OpenCV深度学习人脸识别的方法示例

    2022-11-08 06:34:42
  • TypeScript工具类 Partial 和 Required 的场景分析

    2024-04-29 13:14:45
  • php验证session无效的解决方法

    2023-08-15 06:52:39
  • Python开发的HTTP库requests详解

    2021-09-06 19:08:09
  • Python中 CSV格式清洗与转换的实例代码

    2023-02-19 02:23:57
  • asp之家 网络编程 m.aspxhome.com