|
|
||||
首页
文学作品 网页设计 平面设计 程序设计 考试认证 基础办公 QQ资源 服务器架设 网站运营 网页资源
|
|
|
| 汉南在线 → 网页设计 → Asp动态程序 | |||||||||||
对于ASP的使用者来说,在数据库操作上越简单,就有更多的时间去考虑逻辑上和应用上的代码,效率也会更高。今天俺在这里给大家提供一种数据库操作的思路,这些代码是俺在长期的ASP应用中不断完成和修正的,也已经用它完成了很多项目了,应该说直接拿去用是没有问题的。当然本人能力也有限,希望大家一起来讨论。
先简单介绍一下俺这个类的一些特点:
1. 修改clsDbctrl.asp文件中的第1行为你自己的数据库位置(修改方法参考下面的CreatConn函数说明)。如需连接多个数据库可自行添加,格式相同。 2. 在你新建的asp文件中包含此asp文件。如: 3.使用如下代码应用此类: <% 或者(一个或者多个数据库连接): <%
方法和属性概览(详细用法及例子在下面): 引用: CreatConn 生成数据库连接字符串
dbCtrl.GetRecordDetail 方法,根据某一条指定纪录的详细数据 参数约定: 由于ASP没有Arguments对象,不能使用动态参数,所以,在本类的代码中,使用了Array(数组)来达到这一效果。本类中的部分参数可以使用数组(参数说明中有注明),但使用数组时应参照以下格式: Array("Field1:Value1", "Field2:True", "Field3:100")
Array("Field1:" & Value1, "Field2:" & Value2, "Field3:" & Value3) 可以这样说,本类中的几乎所有与数据库字段相关的内容都可以用以上的数组格式来设置条件或者是获取内容。而这里最大的特点就是在使用时不用去考虑字段的类型,在字段后跟一个冒号,接着跟上相应的值就行了。如果你经常手写ASP程序的话,你很快就会感受到运用这种方式的魅力,除了数据类型不用考虑之外,它也很方便随时添加和删除条件。如果你还不明白怎么用的话没关系,下面有很多例子可以说明这个问题。 要把ASP的数据库操作封装起来其实并不难,相信大家以前自己也做过类似的代码或是借用过其他人的封装好的代码。但是就如各位知道的一样,使用封装后的代码一旦出错,排错是一个比较麻烦的事情,一般说来,封装后操作越简单的排错也越复杂。俺在写这些代码的时候已经尽我所能考虑到如果出错的话如何去排查错误,在尽可能简化用户操作数据库的代码的同时可以随时输出sql语句排查错误。
最后需要说明一点,本文所涉及的ASP数据库操作并不适合大型数据,如你所知,操作大型数据最好还是使用存储过程之类的东东比较好,以后俺会考虑把对存储过程的操作也封装进去。还有一个效率问题,要追求高效率的话,用ASP还是应该考虑COM+等,所以再次声明,本类适用的对象是中小型ASP项目。
好了,下面奉上详细使用说明:
一.数据库连接 考虑到大多数人的使用习惯,在数据库连接上使用了公共过程,所以需要大家在代码里自行修改,如果你已经建立了数据库连接,把这几行注释掉就行了。代码中内置了MSSql,Access,MySQL,Oracle4种数据库的连接方式,当然你也可以自行在源代码中增加或删除。修改例如:
Dim a : a = CreatConn(0, "TestData", "localhost", "username", "userpassword")
说明一下,第1个参数可以是字符串。如果是使用Access,则第2个参数输入相对路径和绝对路径都是可以的,如有密码也可以在第5个参数中输入,如:
Dim c : c = CreatConn("ACCESS", "E:\MyWeb\Data\%TestDB%.mdb", "", "", "mdbpassword") 相关函数:
原 型:CreatConn(dbType, strDB, strServer, strUid, strPwd)
原 型:Oc(connStr) 原 型:Co(obj) 原 型:OpenConn
原 型:CloseConn 二. 数据库操作 下面就是本数据库操作类的函数功能说明,应该算是手册了,请多看例子的应用。
Dim db : Set db = New DbCtrl 说 明:此属性为可选,如果不指定此属性则默认数据连接为页面上名称为Conn的数据库连接对象 原 型:dbCtrl.AutoID(TableName) Dim newId
原 型:dbCtrl.GetRecord(TableName,FieldsList,Condition,OrderField,ShowN) Dim rs
另外,你可以用下面的语句来查看这个函数生成的sql语句: Response.Write(db.wGetRecord("TestTable","fId,fName,fAge", Array("fSex:男","IsActive:1"), "fName Asc", 0))
如你所见,只需要在原来的函数前加一个w即可。 原 型:dbCtrl.GetRecordBySQL(strSelect) Dim rs 原 型:dbCtrl.GetRecordDetail(TableName, Condition) Dim rs, Id 说 明:就像你已经看出来的一样,这个最常用在打开某个详细页面(比如新闻内容页面)
Dim fName, fSex, fWorkYear, fBirth
看见了吧,真的不用考虑字段的类型是什么滴。 result = db.AddRecord("TestTable",Array("Name:" & fName,_
Response.Write(db.wAddRecord("TestTable",Array("Name:"&fName, "Sex:"&fSex, "WorkYear:"&fWorkYear, "Birthday:"&fBirth, "IsActive:True"))) 说 明:返回的Id值用的是比较笨的方法,并不能保证在并发数据量大的时候的准确性,慎用。
Dim fName, fWorkYear 另外,你可以用下面的语句来查看这个函数生成的sql语句: Response.Write(db.wUpdateRecord("TestTable", "UId = 1308", Array("Name:"&fName, "WorkYear:"&fWorkYear)))
Dim ids, result
另外,你可以用下面的语句来查看这个函数生成的sql语句: Response.Write(db.wDeleteRecord("TestTable", "UId", ids))
原 型:dbCtrl.ReadTable(TableName, Condition, GetFieldNames) Dim uid, result
Dim uid, result 如你所见,就这么简单,输入多个字段名称得到的是一个数组。
Dim rs 这个函数上面的许多例子都用了,就不多解释了,它等同于rs.close : set rs = nothing。
| |||||||||||
| >> 相关文章 | |||||||||||
|
授权使用:汉南在线 http://hnzx.hzwz.net/ 经营许可证:陕ICP备05000109号 Powered by:汉南在线 Copyright (c) 2002-2008 汉南在线. All Rights Reserved . |