在ASP中,如何用类来简化数据库操作方面的代码呢?

wpmsoft 2003-08-24 07:29:23
在ASP的实际使用中,经常要用到的一个功能就是:根据一定的条件查询数据库,得到一个结果集,然后在网页上逐行显示它的内容。

想用类把这个数据库的操作封装起来,这样的话,程序会看起来简洁一些。哪

很久没有做ASP编程了,以前曾经用过的,可是忘记了。哪位大侠可以帮助我一下吗?给我一段简单的示例,不胜感激!!!
...全文
41 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pp4u 2003-08-25
  • 打赏
  • 举报
回复
写在global.asa中,例如:
Sub Application_OnStart
On Error Resume Next
Set fs = CreateObject("Scripting.FileSystemObject")
fs.DeleteFile Cstr(server.MapPath("../Temp/")) & "\*.*",True
set fs=Nothing


dim path
path=server.MapPath("/easyoa/default.htm")
path=left(path,Len(path)-16)
path=path+"config\configinfo.ini"
Set DBConnStr = Server.CreateObject("dbconnstr.coGetDBconstr")
DBConnStr.ConfigFilename=path
Application("ConnStr")=DBConnStr.GetConnStr("Manager")
Application("Groundwork_ConnectionString")=DBConnStr.GetConnStr("GroundWork")
Application("Info_ConnectionString")=DBConnStr.GetConnStr("Info")
Application("Office_ConnectionString")="Provider=SQLOLEDB;Persist Security Info=False;User ID=sa;Initial Catalog=riseOffice;Data Source=(local)" 'DBConnStr.GetConnStr("Office")
Application("Manager_ConnectionString")=DBConnStr.GetConnStr("Manager")
Application("personal_ConnectionString") =DBConnStr.GetConnStr("Personal")
Application("GW_ConnectionString")=DBConnStr.GetConnStr("GroundWork")
Application("manager_ActiveConnection") = DBConnStr.GetConnStr("Manager")
Application("poll_ActiveConnection") = DBConnStr.GetConnStr("Poll")
Application("easyoamail_ActiveConnection") = DBConnStr.GetConnStr("EasyOAMail")
Application("Meeting_ConnectionString") =DBConnStr.GetConnStr("Meeting")
set DBConnStr=nothing
End Sub
painache 2003-08-25
  • 打赏
  • 举报
回复
《ASP3高级编程》第14章。
chinesun 2003-08-24
  • 打赏
  • 举报
回复
举一个无组件上传的类的例子供参考(此类中包含多个函数):
____________________________________________________________
<%
Dim oUpFileStream
Class UpFile_Class
Dim Form,File,Version,Err
Private Sub Class_Initialize
Version = "点尖上传插件 Version V1.0"
Err = -1
End Sub
Private Sub Class_Terminate
'清除变量及对像
If Err < 0 Then
Form.RemoveAll
Set Form = Nothing
File.RemoveAll
Set File = Nothing
oUpFileStream.Close
Set oUpFileStream = Nothing
End If
End Sub

Public Sub GetDate (RetSize)
'定义变量
Dim RequestBinDate,sSpace,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo
Dim iFileSize,sFilePath,sFileType,sFormValue,sFileName
Dim iFindStart,iFindEnd
Dim iFormStart,iFormEnd,sFormName
'代码开始
If Request.TotalBytes < 1 Then
Err = 1
Exit Sub
End If
If RetSize > 0 Then
If Request.TotalBytes > RetSize Then
Err = 2
Exit Sub
End If
End If
Set Form = Server.CreateObject ("Scripting.Dictionary")
Form.CompareMode = 1
Set File = Server.CreateObject ("Scripting.Dictionary")
File.CompareMode = 1
Set tStream = Server.CreateObject ("ADODB.Stream")
Set oUpFileStream = Server.CreateObject ("ADODB.Stream")
oUpFileStream.Type = 1
oUpFileStream.Mode = 3
oUpFileStream.Open
oUpFileStream.Write Request.BinaryRead (Request.TotalBytes)
oUpFileStream.Position = 0
RequestBinDate = oUpFileStream.Read
iFormEnd = oUpFileStream.Size
bCrLf = ChrB (13) & ChrB (10)
'取得每个项目之间的分隔符
sSpace = MidB (RequestBinDate,1, InStrB (1,RequestBinDate,bCrLf)-1)
iStart = LenB (sSpace)
iFormStart = iStart+2
'分解项目
Do
iInfoEnd = InStrB (iFormStart,RequestBinDate,bCrLf & bCrLf)+3
tStream.Type = 1
tStream.Mode = 3
tStream.Open
oUpFileStream.Position = iFormStart
oUpFileStream.CopyTo tStream,iInfoEnd-iFormStart
tStream.Position = 0
tStream.Type = 2
tStream.CharSet = "gb2312"
sInfo = tStream.ReadText
'取得表单项目名称
iFormStart = InStrB (iInfoEnd,RequestBinDate,sSpace)-1
iFindStart = InStr (22,sInfo,"name=""",1)+6
iFindEnd = InStr (iFindStart,sInfo,"""",1)
sFormName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
'如果是文件
If InStr (45,sInfo,"filename=""",1) > 0 Then
Set oFileInfo = new FileInfo_Class
'取得文件属性
iFindStart = InStr (iFindEnd,sInfo,"filename=""",1)+10
iFindEnd = InStr (iFindStart,sInfo,"""",1)
sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
oFileInfo.FileName = Mid (sFileName,InStrRev (sFileName, "\")+1)
oFileInfo.FilePath = Left (sFileName,InStrRev (sFileName, "\")+1)
oFileInfo.FileExt = Mid (sFileName,InStrRev (sFileName, ".")+1)
iFindStart = InStr (iFindEnd,sInfo,"Content-Type: ",1)+14
iFindEnd = InStr (iFindStart,sInfo,vbCr)
oFileInfo.FileType = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
oFileInfo.FileStart = iInfoEnd
oFileInfo.FileSize = iFormStart -iInfoEnd -2
oFileInfo.FormName = sFormName
file.add sFormName,oFileInfo
else
'如果是表单项目
tStream.Close
tStream.Type = 1
tStream.Mode = 3
tStream.Open
oUpFileStream.Position = iInfoEnd
oUpFileStream.CopyTo tStream,iFormStart-iInfoEnd-2
tStream.Position = 0
tStream.Type = 2
tStream.CharSet = "gb2312"
sFormValue = tStream.ReadText
If Form.Exists (sFormName) Then
Form (sFormName) = Form (sFormName) & ", " & sFormValue
else
form.Add sFormName,sFormValue
End If
End If
tStream.Close
iFormStart = iFormStart+iStart+2
'如果到文件尾了就退出
Loop Until (iFormStart+2) = iFormEnd
RequestBinDate = ""
Set tStream = Nothing
End Sub
End Class
%>
wpmsoft 2003-08-24
  • 打赏
  • 举报
回复
不是这个意思啦!!

其实就是简单地用vbscript写一个类而已嘛!
MacrossYF29 2003-08-24
  • 打赏
  • 举报
回复
不过我想ASP.NET是一个不错的选择.真的.非常好的选择.
lindexter 2003-08-24
  • 打赏
  • 举报
回复
其实,也不用封装,写一个函数就行了,我就是这么用的.
:-)
MacrossYF29 2003-08-24
  • 打赏
  • 举报
回复
大家可以把这个写成一个函数呀。再INCLUDE一下就好了。
mudsong 2003-08-24
  • 打赏
  • 举报
回复
正是在下心中的疑团
这个太常用了,要是能对数据庫的操作封装起就好了
shanhe 2003-08-24
  • 打赏
  • 举报
回复
不适合,如果要OOP,考虑asp.net吧

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧