当前位置:中国站长下载文章中心网页编程ASP编程 → asp使用activex组件实例一

asp使用activex组件实例一

减小字体 增大字体 作者:不详  来源:不详  发布时间:2006-8-13 0:56:22
    
  
    test.asp
以下内容为程序代码 以下内容为程序代码
<!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>
vb loop class file创建一个performance activex dll项目,引用microsoft active server pages library和Microsoft ActiveX Databae Object。
  
    填加一个class,命名为loop
以下内容为程序代码 以下内容为程序代码
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
  
    

  
    
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。