打印本文 打印本文 关闭窗口 关闭窗口
asp使用activex组件实例一
作者:武汉SEO闵涛  文章来源:敏韬网  点击数812  更新时间:2009/4/23 10:31:23  文章录入:mintao  责任编辑:mintao
  test.asp[code]$#@60;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"$#@62;

  $#@60;html$#@62;$#@60;head$#@62;

  $#@60;title$#@62;activex组件应用例子一$#@60;/title$#@62;$#@60;/head$#@62;

$#@60;%
---------------------------------------------------------
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%$#@62;

  $#@60;/body$#@62;$#@60;/html$#@62;[/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 PageSize 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 $#@60;$#@62; 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 "$#@60;table border=1$#@62;"

  If Not (rs.EOF And rs.BOF) Then

  rs.PageSize = 10

  rs.AbsolutePage = intPage

  intPageCount = rs.PageCount

  If intPage $#@62; intPageCount Then

  intPage = intPageCount

  End If

  

  

  If intPageCount $#@62; 1 Then

  .Write "$#@60;tr$#@62;$#@60;td colspan=" & intFieldCount & "$#@62;"

  For i = 1 To intPageCount

  If intPage = i Then

  .Write "[" & i & "] "

  Else

  .Write "$#@60;a href=" & strScriptName & "?page=" & i & "$#@62;[" & i & "]$#@60;/a$#@62; "

  End If

  Next

  .Write "$#@60;/td$#@62;$#@60;/tr$#@62;"

  

  

  End If

  End If

  

  .Write "$#@60;tr$#@62;"

  For i = 0 To intFieldCount - 1

  .Write "$#@60;th$#@62;" & rs(i).Name & "$#@60;/th$#@62;"

  Next

  .Write "$#@60;/tr$#@62;"

  

  For i = 1 To intPageSize

  If rs.EOF Then

  Exit For

  End If

  .Write "$#@60;tr$#@62;"

  For j = 0 To intFieldCount - 1

  .Write "$#@60;td$#@62;" & rs(j).Value & "$#@60;/td$#@62;"

  Next

  

  .Write "$#@60;/tr$#@62;"

  rs.MoveNext

  Next

  .Write "$#@60;/table$#@62;"

  End With

  

  rs.Close

  Set rs = Nothing

  con.Close

  Set con = Nothing

  End Function

  [/code]

  

打印本文 打印本文 关闭窗口 关闭窗口