EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
来源:asp之家 发布时间:2011-04-08 10:40:00
而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()的获取本页面地址的方法,很多地方都见过是吧,但是本类里这个方法带一个参数,通过这个参数可以取得很多结果,看例子:


猜你喜欢
- 1. 简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响。MySQL是目前
- 如果我需要在运行有SQL Server的机器上运行病毒扫描软件,怎样做才不会影响性能? 这取决于您希望运行的病毒扫描软件的类型。目前有三种类
- 中文繁体、简体的差异,在NPL中类似英文中的大小写,但又比大小写更为复杂,比如同样为繁体字,大陆、香港和台湾又不一样。先前写过一篇中文繁简转
- 写这篇文章的时候,还真不知道如何取名,也不知道这个该如何将其归类。这个是同事遇到的一个案例,案例比较复杂,这里抽丝剥茧,仅仅构造一个简单的案
- 装饰器通用模型def wrapper(fn): def inner(*args, **kwargs):  
- 表单校验是页面开发中非常常见的一类需求,相信每个前端开发人员都有这方面的经验。网上有很多成熟的表单校验框架,虽然按照它们默认的设计,用起来没
- 目录1.闭包:用函数代替类2.访问定义在闭包的内的变量1.闭包:用函数代替类有时我们会定义只有一个方法(除了__init__()之外)的类,
- 本文实例讲述了Yii2创建多界面主题(Theme)的方法。分享给大家供大家参考,具体如下:Yii2界面主题上的设计总体上和Yii1.x保持一
- 使用auto.js实现自动化每日打卡疫情原因,需要在家每天定时打卡,每天刚起床的时候避免不了出现注意力不集中或者是看不到app,点不到按钮什
- 页面是这样的我尝试了很多次,都不响应。代码是这样的import xlrd###导入数据def read_data(workboo
- 第一种 使用pygame模块 pygame.mixer.init() pygame.mixer.music.load
- 效果图:二维码用了 qrcode.vuenpm install qrcode.vue --save复制内容用了 vue-clipboard2
- create database myIndexDemo go use myIndexDemo go create table ABC ( A
- 一、python读取和写入文件内容任务:在cmd默认登陆目录中建立一个命名为test.txt的文件并写入内容“welco
- 这篇文章主要介绍了Python concurrent.futures模块使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一
- vue-cli遇到的eslint的坑报错Do not access Object.prototype method 'hasOwnP
- 1.操作数据库 1.1创建数据库create + database + 数据库名称当然如果我们不知道数据库是否存在,如果存在就不创
- 本文实例讲述了mysql基于正则实现模糊替换字符串的方法。分享给大家供大家参考,具体如下:例如: abcd(efg)hijk 替换之后是ab
- keras训练fit( self, x, y, batch_size=32, nb_epoch=10, verbose=1, c
- 前言上网浏览网页的时候,看见好的内容免不了要使用复制粘贴,但是我们看到的内容、心里想要的内容和实际粘贴后的内容往往不一致。数据的获取始于复制