EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
而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中,所以只需要在页首引入该文件,如:

或:

(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()的获取本页面地址的方法,很多地方都见过是吧,但是本类里这个方法带一个参数,通过这个参数可以取得很多结果,看例子
相关文章