| 网站首页 | 资讯 | 影音 | 图片 | 论坛 | 模拟驾考 | 免费取名算命 | 瓷都工具 | 留言本 | 域名 | 瓷都商城 | 汇款 | 
|
资讯首页
|
瓷都德化
|
站内新闻
|
影视剧情
|
汽车世界
|
网络文摘
|
周易八卦
|
教程技巧
|
房产信息
|
您现在的位置: 瓷都热线|诚信中国:“一就是一”(1941.CN) >> 资讯 >> 教程技巧0 >> 网络编程 >> 正文 登录 注册
专 题 栏 目
  • 四川汶川8.0级强震
  • 机动车驾驶员考试资料
  • 高考试题及答案
  • 最 新 热 门
     德化又添3个地理标志证明
     [组图]期待!德化龙门湖
     [组图]德化:“绿色动脉
     [图文]德化:造莲花美景
     [图文]德化:编织小网格
     [图文]德化龙门滩龙门湖
     [图文]福建德化县美湖镇
     德化白瓷艺术展亮相深圳
     [组图]“世界瓷都·润养
     德化:前妻婚内举债近8万
    最 新 推 荐
     [组图]期待!德化龙门湖
     [组图]德化:“绿色动脉
     [图文]德化龙门滩龙门湖
     [图文]福建德化县美湖镇
     [组图]德化各种花卉相继
     [组图]福建德化九仙山迎
     [图文]德化石牛山惊现双
     [组图]千年古瓷都德化的
     [组图]警方连捣5传销窝点
     [组图]福建民俗博物馆办
    相 关 文 章
    如何制作无状态的ASP组件
    GB与BIG5内码转换COM原代
    一个用组件动态创建Exce
    利用OWC服务器端组件动态
    利用WinWebMail组件在AS
    用webeasymail组件发送邮
    Asp组件高级入门与精通系
    Asp组件中级入门与精通系
    Asp组件初级入门与精通
    使用组件封装数据库操作
    [图文]Asp组件中级入门与精通系列         ★★★
    Asp组件中级入门与精通系列
    作者:龙卷风.NET 文章来源:csdn.net 更新时间:2006-4-22 23:09:04
    【声明:转载此信息在于传递更多信息,其内容表达的观点并不代表本站立场,由这些信息所产生的一切后果本站不负任何责任。如果您对本信息有什么意见,欢迎和本站联系,谢谢!】http://CiDu.Net

     

    今天我们来看一下一个完整的数据封装的、带分页的例子

     

    打开vb6,新建Activex Dll工程。工程名修改为fCom,类名修改为fZ8
    引用“Microsoft Active Server Pages Object””Microsoft Activex Data Object 2.7 Library”对象库。

     

    创建两个组件事件:OnStartPage以及OnEndPage
    在事件OnStartPage中创建类ScriptingContent的一个引用。
    实例化类ScriptingContent

     

    代码如下:

    Option Explicit

     

     

    '**************************************************

    '作者:龙卷风

    '功能:简单的可以定制的,完全封装的组件

    '时间:2005-01-01

    '**************************************************

     

    '对象的声明

    Dim MyResponse As Response

    Dim MyRequest As Request

    Dim myApplication As Application

    Dim myServer As Server

    Dim mySession As Session

     

    '私有变量

    Private mPageSize As Long

    Private mstrSql As String

     

        '当组件被创建的时候会触发这个事件

    Public Sub OnStartPage(myScriptingContent As ScriptingContext)

         '进行对象的实例化

         Set MyResponse = myScriptingContent.Response

         Set MyRequest = myScriptingContent.Request

         Set myServer = myScriptingContent.Server

         Set myApplication = myScriptingContent.Application

         Set mySession = myScriptingContent.Session

    End Sub

     

        '当组件被销毁的时候触发这个事件

    Public Sub OnEndPage()

         '销毁对象

         Set MyResponse = Nothing

         Set MyRequest = Nothing

         Set myServer = Nothing

         Set myApplication = Nothing

         Set mySession = Nothing

    End Sub

     

    显示Table

    Public Function ShowTable()

       

        Dim conn As New ADODB.Connection

        Dim rs As New ADODB.Recordset

       

        Dim i As Integer

        Dim j As Integer

        Dim intPage 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

          

        On Error GoTo err

       

        conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Northwind;Data Source=localhost"

           

        rs.Open mstrSql, conn, adOpenStatic, adLockReadOnly

       

        '得到记录数

        intFieldCount = rs.Fields.Count

       

        '输出表格

        MyResponse.Write "<table border=1 cellspacing=0 cellpadding=2>"

       

        If Not rs.EOF Then

            rs.PageSize = mPageSize

            rs.AbsolutePage = intPage

           

            '得到页数

            intPageCount = rs.PageCount

           

            '处理分页

            If intPage < 1 Then intPage = 1

            If intPage > intPageCount Then intPage = intPageCount

           

           

            '输出表头

            MyResponse.Write "<tr>"

            For i = 0 To intFieldCount - 1

                MyResponse.Write "<th>" & rs(i).Name & "</th>"

            Next

            MyResponse.Write "</tr>"

               

            '输出内容

            For i = 1 To mPageSize

                If rs.EOF Then

                     Exit For

                End If

                MyResponse.Write "<tr>"

                    For j = 0 To intFieldCount - 1

                        MyResponse.Write "<td>" & rs.Fields(j).Value & "</td>"

                    Next

                MyResponse.Write "</tr>"

                rs.MoveNext

            Next

           

            '输出分页

            MyResponse.Write "<tr>"

            If intPage <> 1 Then

            MyResponse.Write "<a href=" & strScriptName & "?page=1>[第一页]</a>"

            MyResponse.Write "<a href=" & strScriptName & "?page=" & intPage - 1 & " >[上一页]</a>"

            End If

           

            If intPage <> intPageCount Then

            MyResponse.Write "<a href=" & strScriptName & "?page=" & intPage + 1 & ">[下一页]</a>"

            MyResponse.Write "<a href=" & strScriptName & "?page=" & intPageCount & ">[最后一页]</a>"

            End If

           

            MyResponse.Write "页次:<FONT COLOR='Red'>" & intPage & "/ " & intPageCount & "</FONT>"

            MyResponse.Write "</tr>"

           

        End If

       

        MyResponse.Write "</table>"

           

           

        '释放资源

        If Not rs Is Nothing Then

            If rs.State = 1 Then

                rs.Close

            End If

            Set rs = Nothing

        End If

       

        If Not conn Is Nothing Then

            If conn.State = 1 Then

                conn.Close

            End If

            Set conn = Nothing

        End If

     

        Exit Function

     

    err:

        MyResponse.Write err.Number & err.Description

        If Not rs Is Nothing Then

            If rs.State = 1 Then

                rs.Close

            End If

            Set rs = Nothing

        End If

       

        If Not conn Is Nothing Then

            If conn.State = 1 Then

                conn.Close

            End If

            Set conn = Nothing

        End If

    End Function

     

    定义属性

    Public Property Get ShowPageSize() As Variant

    ShowPageSize = mPageSize

    End Property

     

    Public Property Let ShowPageSize(ByVal vNewValue As Variant)

    mPageSize = vNewValue

    End Property

     

    Public Property Get strSQL() As Variant

    strSQL = mstrSql

    End Property

     

    Public Property Let strSQL(ByVal vNewValue As Variant)

    mstrSql = vNewValue

    End Property

     

    编译成Dll文件,系统自动会注册。

    否则就手工注册 Regsvr32 f:\test\fcom.dll

     

    测试

    打开visual interdev6.0,生成一个fz8.asp文件

    <%@ Language=VBScript %>

    <HTML>

    <BODY>

    <%

    dim obj

    set obj=server.CreateObject("fcom.fz8")

    每页显示的记录数

    obj.ShowPageSize=10

    显示的sql语句

    obj.strSQL="select customerid,companyname,contactname,contacttitle,address from customers"

    obj.ShowTable()

    %>

    </BODY>

    </HTML>

     

    配置好虚拟目录,在ie中执行fc8.asp文件,可以看到


     

     

    上一页  [1] [2] [3] [4] [5] 


    声明:以上信息资料大都是网上搜集而来,版权归作者,如有版权问题请留言告知我将马上改正。
    文中所提到的各种观点只是原文观点,各种说法未经一一确认。并不代表本站认可此观点!!
    资讯录入:admin    责任编辑:admin 
  • 上一篇资讯:

  • 下一篇资讯:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    点击数:1647
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论