ASP中调用Access中的查询

用Asp 写程序时经常会用到 Access 做为后台数据库,Access 相对SQL Server 来说 功能是弱了一点,
其中就是数据库段编程功能,前一段时间在网上看到一些用Command 掉用Access 查询的方法,参数传递用到数组,稍显麻烦,
昨天看到NB文章系统里的写法,更简洁明了,于是就整理了一下添出来,请留意红字部分

<%
'===============================================
'  数据库操作类,记录集中以二维数组的形式返回
'  数组第一维是列,第二维是记录行
'  Access 中的查询调用
'  如在 Access 中有如下查寻 vi_Hot_Aritcle
'  Select Title,Author,AddTime,Hits From [Article] Where
'  Title Like v_Title And (AddTime Between v_sTime And v_eTime)
'  And Hits > v_Hits
'  And Passed=v_Passed Order By AddTime Desc,Hits Desc
'  则调用代码如下
'  SQL="Exec vi_Hot_Article " & " """ & Title & """ " & "," _
'  & "#" & s_Time & "#" & "," & "#" & e_Time & "#" & "," _
'       & Hits & "," & -1
'============================================
'  说明:
'  时间用 #2005-11-11#,
'  字符串用'abc'或"%abc%"(%为通配符)
'  数字 直接写
'  是否 否为0,是为-1
'============================================
'  执行方式
'  Rs.Open SQL,conn,1,1 '分页
'  Set Rs=conn.Execute(SQL) '返回全部
'  conn.Execute(SQL) '无返回值
'==========================================
'  注意
'  查询在Access里面(通过双击运行)
'  时间输入 2005-1-15 则可
'  字符 直接输入
'  通配符 用 *
'  是否 也是 0与-1
'==============================================

class Cls_DB_Operator
 private Rs
 private SQL
 
 private Sub Class_Initialize()
  Set Rs=Server.CreateObject("ADODB.RecordSet")
 End Sub
 private Sub Class_Terminate()
  If Rs.State=1 Then Rs.Close()
  Set Rs=Nothing
 End Sub
 
 Public Function DB_GetScaleQuery(sSQL)
  Set Rs=conn.Execute(sSQL)
  If Not Rs.EOF Then
   DB_GetScaleQuery=Rs(0)
  Else
   DB_GetScaleQuery=Null
  End If
  Rs.Close()
 End Function
 
 Public Function DB_Execute(sSQL)
  conn.Execute(sSQL)
 End Function
 
 Public Function DB_Query(sSQL)
  Set Rs=conn.Execute(sSQL)
  If Not Rs.EOF Then
   DB_Query=Rs.GetRows()
  Else
   DB_Query=0
  End IF
  Rs.Close()
 End Function
 
 Public Function DB_CutPageQuery(sSQL,pageNum,pageSize)
  If Rs.State=1 Then Rs.Close()
  Rs.Open SQL,conn,1,1
  If Not Rs.EOF Then
   Rs.AbsolutePosition=Rs.AbsolutePosition +((Abs(PageNum)-1) * pageSize)
   DB_CutPageQuery=Rs.GetRows(pageSize)
  Else
   DB_CutPageQuery=0
  End If 
  Rs.Close()
 End Function

End Class

%>

<%

'//测试代码
 Dim DbOP,Num,SQL,Arr
 Set DbOP=New Cls_DB_Operator
 SQL="Exec vi_Hot_Article " & """%%""," & "#2005-8-29#" & "," & "#2006-12-1#" & "," & 0 & _
  "," & -1
 Arr=DbOP.DB_Query(SQL)
 If IsArray(Arr)  Then 
  For i=0 To Ubound(Arr,2)
   Response.Write(Arr(0,i) & "<br>")
  Next
 Else
  '// No Return
 End If
%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件介绍 使用用途: 适合修改不频繁、保密性不高的成绩、工资、物业水电费等各种精准查询。 1. 成绩查询系统,每个学校,教育机构,事业单位考试等都可以用到 2. 工资查询系统,每个学校,教育机构,事业单位考试等都可以用到 3. 物业费查询系统,每个企业,学校,所有单位都可能用到 4. 水电费查询系统,小区,物业公司,大学寝室等 5. 其他如分班查询,录取查询,考场查询、证书查询等修改不多的各种查询系统 特色优势 1. 灵活通用 别看源码体积极小,可以快速用于各种二维表查询。 成绩查询、水电费物业费查询、录取、分班、分宿舍、考场分配查询等通用。 2. 小巧易拓展 易于程序员快速掌握;大大提升开发速度并降低二次开发成本。 3. 安全提示 注意自己增加安全过滤源码。 4. 简单易用 无需安装(初始化),放根目录或任意目录直接使用。 5. 低耗网络 现在大多页面单js文件就几百KB,加上图片就更大了。 一个网页往往超过1MB。本查询页一个页面只有30KB左右。 相当于在同等带宽资源下,网络并发量可以提升几十倍。 所以:节省很多网络费用的同时,大幅度提升查询的并发量。 6. 低耗读写 本查询几乎只读不写;小巧的网页也将在JS和图片的读取方面节约大量资源。 使用建议: 直接通过FTP上传到asp+access空间即可使用,建议先直接上传查询测试。 前台访问:http://网址/目录/ (上传直接使用) 然后记事本打开inc/conn.asp查看参数与网页对应关系。 适合:平时习惯用access数据库的用户。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值