而Easp类中提供了大量实用的ASP通用过程及方法,可以简化大部分的ASP操作。目前只提供了VBScript版,JScript版将来可能会提供。
EasyASP v1.5 (2008-10-22更新)
新增功能:
1、将数据库控制类(原clsDbCtrl.asp)封装入Easp类,均通过Easp.db调用,也可独立使用。
2、新增MSSQL存储过程调用方法,可灵活调用存储过程并返回返回值、记录集及出参。
3、新增db.CreatConn方法,可以根据自定义的连接字符串连接数据库。
4、新增db.Json方法,可以将数据库记录集按Json格式输出。
5、新增db.Rand和db.RandStr方法,可以生成一个不重复的随机数或者随机字符串
6、新增数据库操作各方法的简写方法,更节约书写代码时间。
7、在Easp类中新增大量的实用方法,如安全获取值、防Sql注入、服务器端表单验证等。
其它更新:
1、优化db.AutoId自动获取编号,效率提高20倍以上,数据量越大越明显。
2、修改db.OpenConn数据库连接方法,更符合日常描述习惯。
3、修改db.GetRecord取记录集方法,参数更少。修正条件使用数组报错的Bug。
4、修改并优化db.DeleteRecord删除记录方法,目前只有两个参数了。
5、修改了错误调试方法,增加Debug全局属性控制错误显示。
更新说明:
以前写了一个clsDbCtrl.asp数据库控制类,收到一些反馈,还有朋友发来邮件告诉我一些改进的方法,很感谢他们。而我在原帖的跟帖中看到一条留言说“有记参数的时间,SQL语句早都写完了”,更是直接指出了其中的尴尬,的确,尽管VBS没有arguments属性,但用太多的参数也不是个好主意。所以我花了些时间把这个类的许多代码都重写了一下,在保证功能只能更强不能更弱的前提下,一个方法最多只有3个参数了。另外新增加了一个调用MSSQL存储过程的方法,可以灵活的调用存储过程并根据需要返回一个或多个记录集、输出参数及返回值,当然,吸取教训了,这个方法只有两个参数。现在都封装在这个新的名叫EasyASP的家伙中了,顾名思义,无非是想一切都简单点。
另外还有一个更尴尬的,那就是VBScript并不是面向对象的语言,所以这个类其实说穿了也只是一些过程和方法的封装,方便使用而已,所以其中大部分的方法和过程都可以提出来单独使用。当然,如果有需要,也可以把它封装成wsc或者dll组件使用。
=================================================================
使用说明
=================================================================
1、使用方法:
(1) Easp类的所有调用都已包含在easp.asp中,所以只需要在页首引入该文件,如:
<!--#include file="inc/easp/easp.asp" -->
或:
<!--#include virtual="/inc/easp/easp.asp"-->
(2) 该类已经实例化,无需再单独实例化,直接使用Easp.前缀调用即可,如:
Easp.wn("Test String") 或 Easp.db.AutoId("Table:ID")
(3) 如要同时操作多个数据库,请实例化新的easpdb对象,如:
Dim db2 : Set db2 = New EasyASP_db
db2.dbConn = db2.OpenConn(0,dbase,server)
2、参数约定:
(1) 数组参数:由于VBScript没有arguments属性,不能使用动态参数,所以,在本类涉及到数据库数据的代码中,使用了Array(数组)来达到这一效果。本类中的部分参数可以使用数组(参数说明中有注明),但使用数组时应参照以下格式:
Array("Field1:Value1", "Field2:True", "Field3:100")
对,有点像json的格式,如果涉及到变量,那就这样:
Array("Field1:" & Value1, "Field2:" & Value2, "Field3:" & Value3)
可以这样说,本类中的几乎所有与数据库字段相关的内容都可以用以上的数组格式来设置条件或者是获取内容,包括调用存储过程要传递的参数。而这个类里最大的优点就是在使用时不用去考虑字段的类型,在字段后跟一个冒号,接着跟上相应的值就行了。如果你经常手写ASP程序的话,你很快就会感受到运用这种方式的魅力,除了数据类型不用考虑之外,它也很方便随时添加和删除条件。这里举个例子说明这个用法:
比如添加新记录的方法:
Easp.db.AddRecord "Table", Array("FieldsA:测试数据","FieldsB:"&Now(),"FieldsC:True")
参数只有两个,一个是表名,另一个就是这样的数组参数。如果要改变数据库结构,则修改上面的程序代码就非常简单了。
(2) 共用参数(用特殊符号分隔): 也是考虑到要尽量减少参数,如果有些参数在很多时候都可以没有的话,那就没有必要专门为它增加一个参数。在本类里采用了特殊符号如冒号(:)分隔一个参数中的多个值来达到传递多个参数的效果。举几个例子说明一下,同时也可以预览一下采用本类的一些优势:
比如建立MSSQL数据库连接对象的方法:
Set Conn = Easp.db.Open(0,"Database","User:Password@ServerAddress")
很一目了然对不对,这里就用:和@分隔了几个参数而放在同一个参数里了。另外如果是Access数据库有密码则在第3个参数中输入就行了,没有其它参数了。
再比如获取记录集的方法:
Set rs = Easp.db.GetRecord("Table:FieldsA,FieldsB,FieldsC:20","ID > 10","ID Desc")
其中第1个参数中包含了表名,要取的字段和要取的记录数,因为字段和记录数很多时候是可以省略的,所以俺索性把参数也省略了,这样要记的参数要少很多滴。
再比如本类里有一个GetUrl()的获取本页面地址的方法,很多地方都见过是吧,但是本类里这个方法带一个参数,通过这个参数可以取得很多结果,看例子:
比如本页面的实际地址为:
http://www.domain.com/news/index.asp?type=public&feed=on&page=23
接下来是使用不同参数返回的结果:
方法 返回结果
GetUrl("") http://www.domain.com/news/index.asp?type=public&feed=on&page=23
GetUrl(0) /news/index.asp
GetUrl(1) /news/index.asp?type=public&feed=on&page=23
GetUrl("page") /news/index.asp?page=23
GetUrl("-page") /news/index.asp?type=public&feed=on
GetUrl(":") /news/?type=public&feed=on&page=23
GetUrl(":-feed,-page") /news/?type=public
无需更多说明了吧,呵呵。本类中灵活使用共用参数的地方还有很多,这也是EasyASP的一大特色,大家自己看手册吧。
3、方法和属性概览:
(1) 数据库操作:
属性:
Easp.db.dbConn (读写) 设置和获取当前数据库连接对象
Easp.db.DatabaseType (只读) 查询当前使用的数据库类型
Easp.db.Debug (读写) 设置和查询错误调试开关
Easp.db.dbErr (只读) 查询错误信息
方法:
Easp.db.OpenConn 根据模板建立数据库连接对象
Easp.db.CreatConn 根据自定义字符串建立数据库连接对象
Easp.db.AutoID 根据表名获取自动编号
Easp.db.GetRecord 根据条件获取记录集
Easp.db.wGetRecord 输出获取记录集的SQL语句
Easp.db.GetRecordBySQL 根据自定义SQL语句获取记录集
Easp.db.GetRecordDetail 获取某一记录的详细信息
Easp.db.AddRecord 添加一条新的记录
Easp.db.wAddRecord 输出添加新记录的SQL语句
Easp.db.UpdateRecord 根据条件更新记录
Easp.db.wUpdateRecord 输出更新记录的SQL语句
Easp.db.DeleteRecord 根据条件删除记录
Easp.db.wDeleteRecord 输出删除记录的SQL语句
Easp.db.ReadTable 根据条件获取指定字段数据
Easp.db.Json 根据记录集生成Json格式数据
Easp.db.doSP 调用一个存储过程并返回多种数据
Easp.db.Rand 生成一个不重复的随机数
Easp.db.RandStr 生成一个不重复的随机字符串
Easp.db.C 关闭记录集并释放资源
(2) 字符串处理:
Easp.w 输出字符串
Easp.wn 输出字符串和一个HTML换行("<br/>")
Easp.we 输出字符串并终止程序
Easp.isN 判断字符串是否为空值
Easp.js 输出JavaScript代码
Easp.alert 弹出js消息框并返回上页
Easp.alertUrl 弹出js消息框并跳转到新页
Easp.jsEncode 转换字符串为安全的JavaScript字符串
Easp.CutString 截取字符串并以自定义符号代替被截部分
Easp.HtmlEncode HTML加码函数
Easp.HtmlDecode HTML解码函数
Easp.HtmlFilter 过滤HTML标签
Easp.RandStr 生成指定长度的随机字符串
Easp.R 获取Request值并转换为SQL安全字符串
Easp.Ra 安全获取Request值并在错误时弹出js消息框
Easp.Test 根据正则表达式验证数据合法性
(3) 时间日期处理:
Easp.DateTime 格式化时间日期
Easp.DiffHour 返回一个日期时间变量和现在相比相差的小时数
Easp.DiffDay 返回一个日期时间变量和现在相比相差的天数
Easp.GetScriptTime 根据时间戳返回精确到毫秒的脚本执行时间
(4) 数字处理:
Easp.Rand 生成一个随机数
Easp.toNumber 转换数字为指定小数位数的格式
Easp.toPrice 转换数字为货币格式
Easp.toPercent 转换数字为百分比格式
(5) Cookie及Application处理:
Easp.SetCookie 设置一个Cookies值
Easp.GetCookie 获取一个Cookies值
Easp.RemoveCookie 删除一个Cookies值
Easp.SetApp 设置一个Application值
Easp.GetApp 获取一个Application值
Easp.RemoveApp 删除一个Application值
(6) 其它:
Easp.IfThen 判断三元表达式
Easp.rr 服务器端跳转页面
Easp.GetUrl 获取当前页面的URI地址
Easp.GetIP 获取访问者IP
Easp.noCache 设置页面不缓存
Easp.close 关闭对象并释放资源
Easp.CheckForm 服务器端表单验证不合法弹出js消息框
Easp.CheckDataFrom 验证提交数据来源
Easp.CheckDataFromA 验证数据来源不合法则弹出js消息框
Easp.CheckSql 防SQL注入强验证
Easp.CheckSqlA 防SQL注入强验证不合法则弹出js消息框
EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)
2019-09-18 10:42asp教程网 ASP教程
EasyASP是一个方便快速开发ASP的类,其中包含了一个数据库控制类(原clsDbCtrl.asp,对原代码作了优化和修改,包含对数据库的各类操作及存储过程的调用,全部封装在Easp.db中,使用起来会更方便,调用也更简单)。
延伸 · 阅读
- 2021-04-29阿里面试这样问:Redis为什么把简单的字符串设计
- 2021-04-28Navicat Premium15连接云服务器中的数据库问题及遇到
- 2021-04-27Spring boot 使用JdbcTemplate访问数据库
- 2021-04-27Python从数据库读取大量数据批量写入文件的方法
- 2021-04-26C++利用MySQL API连接和操作数据库实例详解
- 2021-04-26java数据库连接、查询、更新等
- ASP教程
asp生成静态HTML(动态读取)
这样的代码多用于我们没有实现设计生成静态的功能,但又想临时将一些动态页面生成静态的,直接获取动态内容并保存为静态的...
- ASP教程
asp 判断上传文件中是否存在危险代码
asp 判断上传文件中是否存在危险代码...
- ASP教程
FSO遍历目录实现全站插马的代码
FSO遍历目录实现全站插马的代码...
- ASP教程
动网论坛验证码改进 加法验证码(ASPJpeg版)
很多站长都为论坛里太多的垃圾广告抓狂,本程序就是为了对付论坛垃圾广告群发器的。 将验证码改为加法运算,比如验证码显示“25+64等于?”,那么输...
- ASP教程
asp代码实现检测组件是否安装的函数
asp代码实现检测组件是否安装的函数...
- ASP教程
asp知识整理笔记4(问答模式)
继前几篇篇《asp知识整理笔记1》和《asp知识整理笔记2》,《asp知识整理笔记3》新鲜出炉: 23、问题:在ASP文件中读取HTML的表单字段有几种方法? 答:R...
- ASP教程
Discuz!NT 论坛整合ASP程序论坛教程
Discuz!NT 论坛整合ASP程序论坛 实现代码。...
- ASP教程
javascript asp教程第五课--合二为一
两条防线,一个函数: 试问你如何能保证客户端和服务器端具有相同的功能?表单域的验证闪现在我们眼前。别人把你的html复制到另外一个脚本,然后改...