test.asp[code]
1<html><head>
2<title>activex组件应用例子一</title></head>
3
'---------------------------------------------------------
'activex组件应用例子一
'读取sql server 7 pubs数据库中authors表并分页显示
'asp文件中负责调用并前台数据检验,这里主要指page参数
'该例子完全使用activex组件来完成功能,速度快,保密性好,但页面定制能力差
'jjx by 2000/4/15
'----------------------------------------------------------------
dim blnErrorif not isempty(request("page")) then
if not isnumeric(request("page")) then
response.write "参数错误!"
blnError=true
end ifend ifif not blnError then
dim objLoop
Set objLoop=Server.CreateObject("Performance.Loop")
objLoop.List()
Set objLoop=Nothingend if
1
2</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 ScriptingContextDim MyRequest As RequestDim 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 "
1<table border="1">"
2
3If Not (rs.EOF And rs.BOF) Then
4
5rs.PageSize = 10
6
7rs.AbsolutePage = intPage
8
9intPageCount = rs.PageCount
10
11If intPage > intPageCount Then
12
13intPage = intPageCount
14
15End If
16
17
18
19
20
21If intPageCount > 1 Then
22
23.Write "<tr><td colspan=" & intFieldCount & ">"
24
25For i = 1 To intPageCount
26
27If intPage = i Then
28
29.Write "[" & i & "] "
30
31Else
32
33.Write "<a ?page=" & i & " href=" & strScriptName & ">[" & i & "]</a> "
34
35End If
36
37Next
38
39.Write "</td></tr>"
40
41
42
43
44
45End If
46
47End If
48
49
50
51.Write "<tr>"
52
53For i = 0 To intFieldCount - 1
54
55.Write "<th>" & rs(i).Name & "</th>"
56
57Next
58
59.Write "</tr>"
60
61
62
63For i = 1 To intPageSize
64
65If rs.EOF Then
66
67Exit For
68
69End If
70
71.Write "<tr>"
72
73For j = 0 To intFieldCount - 1
74
75.Write "<td>" & rs(j).Value & "</td>"
76
77Next
78
79
80
81.Write "</tr>"
82
83rs.MoveNext
84
85Next
86
87.Write "</table>
"
End With
rs.Close
Set rs = Nothing
con.Close
Set con = Nothing
End Function
[/code]