日期:2010-02-27  浏览次数:21239 次

首先,认为ASP已经过时的人,请忽略此帖,谢谢。俺这里只是提供一种思路,希望能给很多还在学习和使用ASP的朋友一种方便。尽管俺现在也很少用ASP了,但俺相信只要能满足应用,就没有什么过时不过时的,也许它的语言没那么高级,但做出来的应用不一定就低级,呵呵。

    EasyASP是一个方便快速开发ASP的类,其中包含了一个数据库控制类(原clsDbCtrl.asp,对原代码作了优化和修改,包含对数据库的各类操作及存储过程的调用,全部封装在Easp.db中,使用起来会更方便,调用也更简单)。而Easp类中提供了大量实用的ASP通用过程及方法,可以简化大部分的ASP操作。目前只提供了VBScript版,JScript版将来可能会提供。详细说明请下载帮助手册,里面有非常详细的使用方法说明及源码范例。

    后续更新请关注:http://code.google.com/p/easyasp/

=================================================================
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数据库控制类(《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,"Datab