asp使用activex组件实例一

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 libraryMicrosoft 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]