asp使用activex组件实例一
发表于:2007-06-30来源:作者:点击数:
标签:
test.asp [code] !DOCTYPE HTML PUBLIC -//W3C//D TD HTML 4.0 Transitional//EN html head titleactivex组件应 用例 子一/title /head body % ‘’--------------------------------------------------------- ‘’activex组件应用例子一 ‘’读取 sql serv
test.asp
[code]
<!DOCTYPE HTML PUBLIC "-//W3C//D
TD HTML 4.0 Transitional//EN">
<html>
<head>
<title>activex组件应
用例子一</title>
</head>
<body>
<%
‘’---------------------------------------------------------
‘’activex组件应用例子一
‘’读取
sql server 7 pubs
数据库中authors表并分页显示
‘’asp文件中负责调用并前台数据检验,这里主要指page参数
‘’该例子完全使用activex组件来完成功能,速度快,保密性好,但页面定制能力差
‘’jjx by 2000/4/15
‘’----------------------------------------------------------------
dim blnError
if not isempty(request("page")) then
if not isnumeric(request("page")) then
response.write "参数错误!"
blnError=true
end if
end if
if not blnError then
dim objLoop
Set objLoop=Server.CreateObject("Performance.Loop")
objLoop.List()
Set objLoop=Nothing
end if
%>
</body>
</html>
[/code]
vb loop class file
创建一个performance activex dll项目,引用microsoft active server pages library和Microsoft ActiveX Databae Object。
填加一个class,命名为loop
[code]
Option Explicit
Dim MyScriptingContext As ScriptingContext
Dim MyRequest As Request
Dim MyResponse As Response
Sub OnEndPage()
Set MyResponse = Nothing
Set MyRequest = Nothing
Set MyScriptingContext = Nothing
End Sub
Sub OnStartPage(PassedScriptingContext As ScriptingContext)
Set MyScriptingContext = PassedScriptingContext
Set MyRequest = MyScriptingContext.Request
Set MyResponse = MyScriptingContext.Response
End Sub
Function List()
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim i As Integer
Dim j As Integer
Dim intPage As Integer
Dim intPageSize As Integer
Dim intPageCount As Integer
Dim strScriptName As String
Dim intPos As Integer
Dim intFieldCount As Integer
strScriptName = MyRequest.ServerVariables("Script_Name")
intPos = InStrRev(strScriptName, "/")
If intPos <> 0 Then
strScriptName = Mid(strScriptName, intPos + 1)
End If
If IsEmpty(MyRequest("page")) Then
intPage = 1
Else
intPage = CInt(MyRequest("page"))
End If
intPageSize = 10
con.Open "Provider=
SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pubs;Data Source=(local)"
rs.Open "select * from authors", con, adOpenStatic
intFieldCount = rs.Fields.Count
With MyResponse
.Write "<table border=1>"
If Not (rs.EOF And rs.BOF) Then
rs.PageSize = 10
rs.AbsolutePage = intPage
intPageCount = rs.PageCount
If intPage > intPageCount Then
intPage = intPageCount
End If
If intPageCount > 1 Then
.Write "<tr><
td colspan=" & intFieldCount & ">"
For i = 1 To intPageCount
If intPage = i Then
.Write "[" & i & "] "
Else
.Write "<a href=" & strScriptName & "?page=" & i & ">[" & i & "]</a> "
End If
Next
.Write "</td></tr>"
End If
End If
.Write "<tr>"
For i = 0 To intFieldCount - 1
.Write "<th>" & rs(i).Name & "</th>"
Next
.Write "</tr>"
For i = 1 To intPageSize
If rs.EOF Then
Exit For
End If
.Write "<tr>"
For j = 0 To intFieldCount - 1
.Write "<td>" & rs(j).Value & "</td>"
Next
.Write "</tr>"
rs.MoveNext
Next
.Write "</table>"
End With
rs.Close
Set rs = Nothing
con.Close
Set con = Nothing
End Function
[/code]
原文转自:http://www.ltesting.net