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

    一、什么是组件 

      组件是包含可以更改的数据形式的代码的对象,是可用代码的封装,这些代码可以用来执行应用程序的一些功能,如从数据库中检索某些信息等功能。现在经常听人说起COM,其使它的意思是组件对象模型(Component Object Model),是由微软开发的可以在Windows平台上执行的对象模型,COM定义了组件之间的交互能力。为COM编写的组件可以重复使用,并不依赖于编写所用的语言,比如说,一个组件可以用VB,VC++甚至是Java来编写,总之,只要遵守COM规范就可以了。 

    二、为什么我们要用VB来创建ASP组件 

      前面我也说了,编写组件对使用的语言没有什么限制,因此您就可以使用您所熟悉的语言来编写组件。我们说VB是用来编写组件最容易的语言工具,它虽然没有VC++和Java得优良的性能,和高速灵活性,但是因为它易学易用,所以也被广大程序开发人员是用来编写COM组件。下面我想介绍一下如何使用VB来创建ASP所用的COM组件。 

    三、问题的提出 

      某个商务网站,经常要对他们多提供的CD信息进行增加或删除等操作,因此它们像开发出一个DNA组件(Distributed interNet Architecture分布式Internet结构 ),从数据库中对CD信息进行操作。在此,我们想利用VB来实现创建这个组件的过程。 

      首先,我们需要知道CD信息在数据库中,例如SQL SERVER 7.0中的存储结构,如下: 

    CD_ID: 为数据库中唯一标识这张CD的标识符。 
    CD_Name: 为CD名
    CD_Author: 为演唱(奏)者
    CD_Price: 为CD价格

    CD_Information: 为CD的简单描述 

      为了简单起见,我们假设对CD信息数据的处理仅有增加和删除,有兴趣的朋友想增加这个组件的功能请参看相应的书籍,自行完成。 

      就像在Java中写JavaBean程序一样,在ASP的组件中,我们也要定义相应的方法来实现一定的功能,本例中用到了下列方法: 
    OpenDB: 打开数据库,读入所有的CD信息。
    CloseDB: 关闭数据库连接。
    Add: 向数据库中添加一条新的CD信息
    Delete: 从数据库中删除一条CD信息。
    NextCD: 从表中返回当前CD信息,并把指针移向下一条信息
    IsEof: 判断是否还有更多的CD信息 

    四、使用VB创建组件 

      现在让我们开始用Visual Basic 6.0(当然使用VB5.0也是可以的 )创建一个新的ActiveX DLL项目(如图) 

    由于我们要操作数据库,要使用到ADO,因此我们要引用Microsoft Activex Data Object 2.5 Library.(如下图) 

    现在我们开始写组件中的方法 

    1、 OpenDB方法 

      OpenDB方法的思路是建立与MS SQL SERVER7.0的连接,这可以使用SQLOLEDB Provider来实现。建立连接后就可以创建一个包含所有CD信息的记录集。根据以上分析我们写出如下代码。 

    Option Explicit 

    Private Conn As ADODB.Connection 

    Private RecordSetCD As ADODB.Recordset 

    ’打开连接和结果集 

    Private Sub OpenDB() 

    Set Conn = New ADODB.Connection 

    Set RecordSetCD = New ADODB.Recordset 

    Conn.Open "Provider=SQLOLEDB;DataSource=MUSE;Initial Catalog=Music;UserId=Wayne;Password=AbCdEfG" 

    RecordSetCD.Open "SELECT * FROM CD", Conn 

    End Sub 

    2、 CloseDB方法 

      由于连接数据库是相当昂贵的,所以在不需要使用数据库时,一定要记住关闭Recordset 和Connection对象,CloseDB就是完成这一操作。 

    Private Sub CloseDB()
        '关闭结果集RecordSetCD 
        If Not (RecordSetCD Is Nothing) Then 
            If RecordSetCD.State = adStateOpen Then 
                RecordSetCD.Close 
            End If
            Set RecordSetCD = Nothing
        End If 

        '关闭连接Conn 
        If Not (Conn Is Nothing) Then 
            Conn.Close 
            Set Conn = Nothing
        End If
    End Sub
    3、 Add方法 
     
       Add方法的目的是向数据库中添加一条新的CD信息,因此它打开的记录集要求能够更新。这就不能像OpenDB中那样仅用Open打开数据集。详细的代码见下面: 
     
     Private Sub Add(Id As String, Name As String, Author As String, Price As Currency, Information As String) 
     
     Dim NewConn As New ADODB.Connection 
     
     Dim NewRecordsetCD As New ADODB.Recordset 
     
     NewConn.Open "Provider=SQLOLEDB;DataSource=MUSE;Initial Catalog=Music;UserId=Wayne;Password=AbCdEfG" 
     
     NewRecordsetCD.Open "SELECT * FROM CD", NewConn, adOpenDynamic, adLockOptimistic 
     
     NewRecordsetCD.AddNew 
     
     NewRecordsetCD.Fields("CD_ID") = Id 
     
     NewRecordsetCD.Fields("CD_Name") = Name 
     
     NewRecordsetCD.Fields("CD_Author") = Author 
     
     NewRecordsetCD.Fields("CD_Price") = Price 
     
     NewRecordsetCD.Fields("CD_Information") = Information 
     
     NewRecordsetCD.Update 
     
     End Sub 
     
     解释:使用 NewRecordsetCD.AddNew, 
     
     NewRecordsetCD.Fields(“Some_Key”)=Some_Value 
     
     NewRecordsetCD.Update 来添加一条纪录 
     
     4、 Delete方法: 
     
       这个方法的目的是为了删除库中的某条CD名和相关的信息。它的实现方法是通过查询表中唯一的CD_ID来定位CD信息,从而删除该行纪录 
     
     Private Sub Delete(Id As String) 
     
     Dim NewConn As New ADODB.Connection 
     
     Dim RecordsetDelete As New ADODB.Recordset 
     
     NewConn.Open "Provider=SQLOLEDB;DataSource=MUSE;Initial Catalog=Music;UserId=Wayne;Password=AbCdEfG" 从表中删除一条信息 
     
     NewConn.Execute "DELETE FROM CD WHERE CD_ID ='" & Id & "'", adCmdText + adExecuteNoRecords 
     
     End Sub 
     
     
     5、ASP程序的编写 
     
     (1) ListCdInformation.asp 程序 
     
       这个程序实现的是检索数据库,把检索的结果显示为一张表,使用了刚才我们定义的组件。它打开表,然后列举每一张CD的信息。 
     
     〈% 
     
     Dim Cd_Info 
     
     Set Cd_Info= Server.CreateObject("CD.CD_Handle") 
     
     %〉 
     
     〈HTML〉 
     
     〈HEAD〉 
     
     〈META http-equiv="Content-Type" content="text/html; charset=gb2312"〉 
     
     〈TITLE〉CD信息列表〈/TITLE〉 
     
     〈/HEAD〉 
     
     〈BODY〉 
     
     〈B〉〈P ALIGN="center"〉CD信息列表〈/P〉〈/B〉 
     
     〈TABLE BORDER="2" CELLSPACING="1"〉 
     
     〈TR〉 
     
     〈TD〉〈P ALIGN="center"〉CD编号〈/TD〉 
     
     〈TD〉〈P ALIGN="center"〉CD名〈/TD〉 
     
     〈TD〉〈P ALIGN="center"〉作者〈/TD〉 
     
     〈TD〉〈P ALIGN="center"〉价格〈/TD〉 
     
     〈TD〉〈P ALIGN="center"〉CD简介〈/TD〉 
     
     〈/TR〉 
     
     〈TR〉〈/TR〉 
     
     〈%DIM ID 
     
     Dim Name 
     
     Dim Author 
     
     Dim Price 
     
     Dim Information 
     
     '初始化CD列表 
     
     Cd_Info.OpenDB 
     
     While Cd_Info.IsEof =False 
     
     Cd_Info.NextCD ID,Name,Author,Price,Information 
     
     %〉 
     
     〈TR〉 
     
     〈TD〉〈%=ID%〉〈/TD〉 
     
     〈TD〉〈%=Name%〉〈/TD〉 
     
     〈TD〉〈%=Author%〉〈/TD〉 
     
     〈TD〉〈%=Price%〉〈/TD〉 
     
     〈TD〉〈%=Information%〉〈/TD〉 
     
     〈TD〉〈Form Name = "Delete" METHOD ='POST' ACTION ="DeleteCdInformation.asp?id=〈%=ID%〉"〉 
     
     〈INPUT TYPE "SUBMIT" VALUES="删除此条" NAME="DELETE2"〉 
     
     〈/FORM〉 
     
     〈/TD〉 
     
     〈/TR〉 
     
     〈% 
     
     Wend 
     
     %〉 
     
     〈/TABEL〉 
     
     〈FORM NAME="ADD" METHOD ="POST" ACTION="AddCDInformation.asp"〉 
     
     〈input type ="submit" value="添加一条CD信息" Name="ADD2"〉 
     
     〈/FORM〉 
     
     〈/body〉 
     
     〈/html〉
    (2)DeleteCdInformation.asp程序 

      点击每条信息后的删除键就会从表中把该条信息删除,它也调用了我们刚刚注册的组件。限于篇幅,我只把最重要的几行代码写出: 

    〈% 

    Dim CD_Info 

    Set CD_Info =Server.CreateObject(“CD.CD_Handle”) 

    CD_Info.Delete Request.QueryString(“ID”) 

    %〉 

    (3)AddCDInformation.html 

      本程序是一个纯HTML文本,只出现一个表单,让你填写新的CD信息,然后再发给InsertintoDB.asp来加入数据库。 

    〈html〉 

    〈head〉 

    〈meta http-equiv="Content-Language" content="zh-cn"〉 

    〈meta http-equiv="Content-Type" content="text/html; charset=gb2312"〉 

    〈title〉请您添加一条CD信息〈/title〉 

    〈/head〉 

    〈body〉 

    〈form method="POST" action="InsertintoDB.asp"〉 

    〈p〉 〈/p〉 

    〈p〉 请您添加一条CD信息〈/p〉 

    〈table border="1" cellspacing="1" width="34%" height="109"〉 

    〈tr〉 

    〈td width="24%" height="16"〉 

    〈p align="center"〉CD号〈/td〉 

    〈td width="76%" height="16"〉〈input type="text" name="ID" size="24"〉〈/td〉 

    〈/tr〉 

    〈tr〉 

    〈td width="24%" height="16"〉 

    〈p align="center"〉CD名〈/td〉 

    〈td width="76%" height="16"〉〈input type="text" name="Name" size="24"〉〈/td〉 

    〈/tr〉 

    〈tr〉 

    〈td width="24%" height="16"〉 

    〈p align="center"〉作者〈/td〉 

    〈td width="76%" height="16"〉〈input type="text" name="Author" size="24"〉〈/td〉 

    〈/tr〉 

    〈tr〉 

    〈td width="24%" height="16"〉 

    〈p align="center"〉价格〈/td〉 

    〈td width="76%" height="16"〉〈input type="text" name="Price" size="24"〉〈/td〉 

    〈/tr〉 

    〈tr〉 

    〈td width="24%" height="95"〉 

    〈p align="center"〉简介〈/p〉 

    〈p〉 〈/td〉 

    〈td width="76%" height="95" valign="top"〉〈textarea rows="4" name="Information" cols="22"〉〈/textarea〉〈/td〉 

    〈/tr〉 

    〈tr〉 

    〈td width="100%" height="15" colspan="2"〉 

    〈p align="center"〉〈input type="submit" value="提交" name="B1"〉〈input type="reset" value="取消" name="B2"〉〈/td〉 

    〈/tr〉 

    〈/table〉 

    〈/form〉 

    〈p〉 〈/p〉 

    〈/body〉 

    〈/html〉 

    (4)InsertIntoDB.asp程序,用到了组件中Add方法 

    〈HTML〉 

    〈HEAD〉 

    〈TITLE〉〈/TITLE〉 

    〈/HEAD〉 

    〈BODY〉 

    〈%DIM Insert_CD 

    set Insert_CD =Server.CreateObject("CD.CD_Handle") 

    Insert_CD.Add request.form("ID"),request.form ("Name"),request.form("Author"),request.form("Price"),request.form("Information") 

    %〉 

    〈p〉您已成功的加入一条书目〈/p〉 

    〈form name="A" Method="POST" Action="ListCdInformation.asp"〉 

    〈input type="SUBMIT" Value="返回" name="B1"〉 

    〈/form〉 

    〈/body〉 

    〈/html〉 

    6、总结 

      上面我简要的介绍了组件的定义以及使用VB来编写ASP中组件的方法,其实上面所举的例子只是很粗浅的例子,相信大家写出的程序一定会比我的更好,我想如果有机会的话,我还会谢谢如何使用VC++和Java来编写COM组件,因为我觉得,如果你没有掌握COM组件,你也就没有掌握ASP的精髓。//by http://CiDu.Net/


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

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