| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2006 人关注过本帖
标题:[讨论]Asp体现MVC思想,提高代码的重用率,提高开发效率!
只看楼主 加入收藏
NqIceCoffee
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2006-7-25
收藏
得分:0 
<%
'======================
'@描述:数据库操作类
'@类名:db
'@日期:2006-10-31
'@作者:NqIceCoffee
'======================
Class cls_db
Private Conn '数据库连接(Connection)
Private Rs '数据集(RecordSet)
Private DbName '数据库名称(String)
Public IsErr '执行过程中是否出现错误(Boolen)
Public ErrMessage '执行过程中的错误消息(String)

Private Sub Class_Initialize()
Set Conn = Server.CreateObject("Adodb.Connection")
Set Rs = Server.CreateObject("Adodb.RecordSet")
IsErr = False
ErrMessage = ""
End Sub

Private Sub Class_Terminate()
Conn.Close()
End Sub

Public Property Let setDataBaseName(str)
DbName = str
End Property

Public Sub OpenConn()
On Error Resume Next
Conn.Open "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & Server.MapPath(DbName)
If Err Then
IsErr = True
ErrMessage = ErrMessage & "<li><b>错误代码</b>:" & Err.Number & "。<b>描述</b>:" & Err.Description & "</li>"
Err.Clear()
End If
End Sub

Public Function Exec(sql)
Dim RowsAffect
On Error Resume Next
Call Conn.Execute(sql,RowsAffect,&h0001)
If Err Then
IsErr = True
ErrMessage = ErrMessage & "<li><b>错误代码</b>:" & Err.Number & "。<b>描述</b>:" & Err.Description & "</li>"
Err.Clear()
RowsAffect = Null
End If
Exec = RowsAffect
End Function

Public Function GetColumn(sql)
Dim returnValue
On Error Resume Next
returnValue = Conn.Execute(sql,,&h0001)(0)
If Err Then
IsErr = True
ErrMessage = ErrMessage & "<li><b>错误代码</b>:" & Err.Number & "。<b>描述</b>:" & Err.Description & "</li>"
Err.Clear()
returnValue = Null
End If
GetColumn = returnValue
End Function

Public Function Query(sql,dataStart,recordNum)
Dim QueryArray
On Error Resume Next
Rs.Open sql,Conn,1,1,&h0001
If Err Then
IsErr = True
ErrMessage = ErrMessage & "<li><b>错误代码</b>:" & Err.Number & "。<b>描述</b>:" & Err.Description & "</li>"
Err.Clear()
Query = Null
Exit Function
Else
If Rs.Eof Then
Rs.Close()
Query = Null
Exit Function
Else
Rs.AbsolutePosition = Int(dataStart)
Query = Rs.getRows(recordNum)
Rs.Close()
End If
End If
End Function

End Class

%>

这个是我的数据库操作类

刚完成,呵呵,如果不用在大一点的项目中,感觉它是鸡肋.

帮助别人,提高自己!
2006-11-01 10:55
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
以下是引用NqIceCoffee在2006-11-1 10:55:24的发言:
<%
'======================
'@描述:数据库操作类
'@类名:db
'@日期:2006-10-31
'@作者:NqIceCoffee
'======================
Class cls_db
Private Conn '数据库连接(Connection)
Private Rs '数据集(RecordSet)
Private DbName '数据库名称(String)
Public IsErr '执行过程中是否出现错误(Boolen)
Public ErrMessage '执行过程中的错误消息(String)

Private Sub Class_Initialize()
Set Conn = Server.CreateObject("Adodb.Connection")
Set Rs = Server.CreateObject("Adodb.RecordSet")
IsErr = False
ErrMessage = ""
End Sub

Private Sub Class_Terminate()
Conn.Close()
End Sub

Public Property Let setDataBaseName(str)
DbName = str
End Property

Public Sub OpenConn()
On Error Resume Next
Conn.Open "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & Server.MapPath(DbName)
If Err Then
IsErr = True
ErrMessage = ErrMessage & "<li><b>错误代码</b>:" & Err.Number & "。<b>描述</b>:" & Err.Description & "</li>"
Err.Clear()
End If
End Sub

Public Function Exec(sql)
Dim RowsAffect
On Error Resume Next
Call Conn.Execute(sql,RowsAffect,&h0001)
If Err Then
IsErr = True
ErrMessage = ErrMessage & "<li><b>错误代码</b>:" & Err.Number & "。<b>描述</b>:" & Err.Description & "</li>"
Err.Clear()
RowsAffect = Null
End If
Exec = RowsAffect
End Function

Public Function GetColumn(sql)
Dim returnValue
On Error Resume Next
returnValue = Conn.Execute(sql,,&h0001)(0)
If Err Then
IsErr = True
ErrMessage = ErrMessage & "<li><b>错误代码</b>:" & Err.Number & "。<b>描述</b>:" & Err.Description & "</li>"
Err.Clear()
returnValue = Null
End If
GetColumn = returnValue
End Function

Public Function Query(sql,dataStart,recordNum)
Dim QueryArray
On Error Resume Next
Rs.Open sql,Conn,1,1,&h0001
If Err Then
IsErr = True
ErrMessage = ErrMessage & "<li><b>错误代码</b>:" & Err.Number & "。<b>描述</b>:" & Err.Description & "</li>"
Err.Clear()
Query = Null
Exit Function
Else
If Rs.Eof Then
Rs.Close()
Query = Null
Exit Function
Else
Rs.AbsolutePosition = Int(dataStart)
Query = Rs.getRows(recordNum)
Rs.Close()
End If
End If
End Function

End Class

%>

这个是我的数据库操作类

刚完成,呵呵,如果不用在大一点的项目中,感觉它是鸡肋.

当然,小项目的确不必这么麻烦。但大项目就有必要了,因为大项目这样做虽然麻烦,但是越做到最后越轻松。一些重复调用的功能,可以省去重复写代码的繁琐。(个人认为ASP中的类也就这点好处)。

2006-11-01 11:04
NqIceCoffee
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2006-7-25
收藏
得分:0 
呵呵,偶还没真正的接触过大型的项目

所以还未曾体会!

帮助别人,提高自己!
2006-11-01 11:15
快速回复:[讨论]Asp体现MVC思想,提高代码的重用率,提高开发效率!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023514 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved