test.asp [code] <!DOCTYPE HTML PUBLIC "-//W3C//DTD 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]
|