Asp深度揭密(下)
Asp深度揭密(下),Asp深度揭密(下)
1. 组件的特点?
l 优点:
n 调用方便,节省代码
n 安全性高
n 支持事务处理,多组件联合
n 运行速度快
n 升级、修改组件不需修改页面,因此扩展性好
l 缺点:
n 开发及调试困难
2. 如何使用VB开发?
⑴.打开VBNew ProjectActiveX DLL
⑵.修改项目名称为course
⑶.修改类模块的名字为conn_db
⑷.Project References,引用COM+ Service Type Library和Microsoft Active Server Pages Object Library。
⑸.修改类代码如下:
from www.knowsky.com
'建立数据库连接并输出数据库字段
Dim Response As Response
Dim Request As Request
Dim Server As Server
Dim Application As Application
Dim Session As Session
Private Sub Class_Initialize()
Dim objContext As ObjectContext
Set objContext = GetObjectContext()
Set Response = objContext("Response")
Set Request = objContext("Request")
Set Server = objContext("Server")
Set Application = objContext("Application")
Set Session = objContext("Session")
End Sub
Sub conn_db()
Set conn = CreateObject("adodb.connection")
conn.open "course_dsn", "course_user", "course_password"
Set rs = CreateObject("adodb.recordset")
rs.open "select * from user_info", conn, 1, 1
If rs.recordcount 0 Then
For i = 1 To rs.recordcount
Response.write "<br" & rs("user_name") & "<br"
If rs.EOF Then Exit For
rs.movenext
Next
End If
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
End Sub
⑹.添加一新类cutstr
⑺.修改类代码如下:
'截取字符串
Function cutstr(str, length)
If Len(str) length Then
cutstr = Left(str, length) & "..."
Else
cutstr = str
End If
End Function
⑻.FileSave
⑼.Filemake course.dll
3. 注册组件:MTS和regsvr32.exe
有两种方式注册组件:MTS和使用regsvr32.exe。MTS是值得推荐的,因为它具有下列优点:
n 动态卸载平衡,提高组件和基于组件的应用程序的升级性。
n 包含公布和提交事件和队列组件的能力,使得更容易与多个组件联合。
要想使组件具有MTS的特性,必须对组件做少许改动。在NT和98下开发时,必须在项目中引用Microsoft Transaction Server Type Library,在Windows 2000下开发,必须引用COM+ Service Type Library。
⑴.regsvr32注册:
regsvr32.exe是system32下面的一个可执行文件,它将组件信息读入注册表,以便Asp调用。
使用命令行进入组件dll文件所在的目录,执行“regsvr32 dll_file_name”即可。
运行regedit,在HKEY_CLASSES_ROOT下就会找到course.conn_db项和course.cutstr项,表明组件注册成功。
⑵.使用MTS注册:
①.开始程序管理工具组件服务
②.展开目录至如下状态:
③.按照向导,下一步,直到如下对话框,点击“创建一个空的应用程序”:
④.在接下来的对话框中,为应用程序起名为“course”,其他默认,直至完成
⑤.展开course应用程序,右键,新建一个组件
⑥.按照提示,继续,出现如下对话框时,选择“导入已被注册的组件”
⑦.选择我们开发的组件,下一步,直至完成
⑧.这时候,可以发现course应用程序下已经多了两个组件:
4. 在Asp中调用组件
asp_use_com.asp
<%
'asp调用com组件
set cutstr_obj=server.createobject("course.cutstr")
response.write cutstr_obj.cutstr("abcdefghijk",3)&"<br"
set cutstr_obj=nothing
set conn_obj=server.createobject("course.conn_db")
conn_obj.conn_db()
set conn_obj=nothing
%
效果:
abc...