test.asp[code]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN"> 
   
    <html><head>
   
    <title>activex组件应用例子一</title></head> 
   
  <% 
  '--------------------------------------------------------- 
  '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%> 
   
    </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 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 "<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]