ASP操作数据库的类(4)

http://www.itjxue.com  2015-07-17 01:48  来源:未知  点击次数: 

原  型:dbCtrl.GetRecordDetail(TableName, Condition)
功  能:根据某一条指定纪录的详细数据
返回值:Object 纪录集对象
参  数:
TableName  : String  表名称
Condition     : String or Array  查询条件,如果是数组应遵循前面的参数约定
举 例:
Dim rs, Id
Id = Request.QueryString("id")
Set rs = db.GetRecordDetail("TestTable","Id=" & id)
'Your Code here...
db.C(rs)

说  明:就像你已经看出来的一样,这个最常用在打开某个详细页面(比如新闻内容页面)

原  型:dbCtrl.AddRecord(TableName, ValueList)
功  能:添加一个新的纪录
返回值:新记录的Id号(成功) or 0 (失败)
参  数:
TableName : String  表名称
ValueList     : Array  插入表的字段和值,只能是数组且应遵循前面的参数约定
举 例:
Dim fName, fSex, fWorkYear, fBirth
fName = "王二坛"
fSex = "男"
fWorkYear = 12
fBirth = Cdate("1981-10-23")
Dim result
result = db.AddRecord("TestTable",Array("Name:"&fName, "Sex:"&fSex, "WorkYear:"&fWorkYear, "Birthday:"&fBirth, "IsActive:True"))
If result<>0 Then
    Response.Write("添加记录成功!此记录的自动编号Id为" & result)
End If

看见了吧,真的不用考虑字段的类型是什么滴。
如果你想要代码中的字段和值看得更清楚一点,也可以这样写,但凭卿之所好:

result = db.AddRecord("TestTable",Array("Name:" & fName,_
                                        "Sex:" & fSex,_
                                        "WorkYear:" & fWorkYear,_
                                        "Birthday:" & fBirth,_
                                        "IsActive:True"))

另外,你可以用下面的语句来查看这个函数生成的sql语句:

Response.Write(db.wAddRecord("TestTable",Array("Name:"&fName, "Sex:"&fSex, "WorkYear:"&fWorkYear, "Birthday:"&fBirth, "IsActive:True")))

说  明:返回的Id值用的是比较笨的方法,并不能保证在并发数据量大的时候的准确性,慎用。

原  型:dbCtrl.UpdateRecord(TableName, Condition, ValueList)
功  能:根据指定条件更新纪录
返回值:1 (成功) or 0 (失败)
参  数:
TableName  : String  表名称
Condition  : String or Array  更新条件,如果是数组应遵循前面的参数约定
ValueList  : String or Array  更新的字段及值,如果是数组应遵循前面的参数约定
举 例:
Dim fName, fWorkYear
fName = "王三坛"
fWorkYear = 10
Dim result
result = db.UpdateRecord("TestTable", "UId = 1308", Array("Name:"&fName, "WorkYear:"&fWorkYear))
If result<>0 Then
    Response.Write("更新数据成功!")
End If

另外,你可以用下面的语句来查看这个函数生成的sql语句:

Response.Write(db.wUpdateRecord("TestTable", "UId = 1308", Array("Name:"&fName, "WorkYear:"&fWorkYear)))

原  型:dbCtrl.DeleteRecord(TableName,IDFieldName,IDValues)
功  能:删除符合条件的纪录
返回值:1 (成功) or 0 (失败)
参  数:
TableName   : String  表名称
IDFieldName : String  表的Id字段的名称
IDValues      : String or Array  删除条件,可以是由逗号隔开的多个Id号,如果是数组应遵循前面的参数约定
举 例:
Dim ids, result
ids = Request.Form("selectid") '可以假设这里获取的值是 12, 34, 256, 314 (复选框提交的值都这样)
result = db.DeleteRecord("TestTable", "UId", ids)
If result<>0 Then
    Response.Write("删除数据成功!")
End If

当然,你也可以用字符串或者数组指定其它的条件,比如:

result = db.DeleteRecord("TestTable", "UId", "IsActive = 0 And FirstName = 'Tom'")

另外,你可以用下面的语句来查看这个函数生成的sql语句:

Response.Write(db.wDeleteRecord("TestTable", "UId", ids))

原  型:dbCtrl.ReadTable(TableName, Condition, GetFieldNames)
功  能:根据指定条件获取某条纪录中的其他字段的内容
返回值:String (GetFieldNames为单个字段) or Array (GetFieldNames为多个字段)
参  数:
TableName       : String  表名称
Condition          : String or Array 查询条件,如果是数组应遵循前面的参数约定
GetFieldNames  : String  单个字段名或者由逗号隔开的多个字段名
举 例:
Dim uid, result
uid = rs("postid")  '假设这里是页面上某个记录集中的用户id值
result = db.ReadTable("UserTable","UId=" & uid, "UserName")
Response.Write("发布者:" & result)

我不得不说,在实际应用中,这个函数可能是用得最多的,你上面看到的就是一个非常常用的例子,从一个值去获取另外一个表中某字段值等于该值的另外一个字段的值(有点拗口,不过确实就是这个意思)。下面的例子将告诉你如何根据这个值获得多个相应的值。

Dim uid, result
uid = rs("postid")  '假设这里是页面上某个记录集中的用户id值
result = db.ReadTable("UserTable","UId=" & uid, "UserName,UserSex,UserAge")
Response.Write("发布者:" & result(0) & "<br /> 性别:" & result(1) & "<br /> 年龄:" &result(2))

如你所见,就这么简单,输入多个字段名称得到的是一个数组。

原  型:dbCtrl.C(objRs)
功  能:关闭纪录集对象
参  数:
objRs  : Object  页面上的某个记录集对象
举 例:
Dim rs
Set rs = db.GetRecordDetail("TestTable","Id=123" )
'Your Code here...
db.C(rs)

这个函数上面的许多例子都用了,就不多解释了,它等同于rs.close : set rs = nothing。

(责任编辑:IT教学网)

更多

推荐ASP教程文章