ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:550.69KB ,
资源ID:7091641      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7091641.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(asp与sql网页数据库程序设计12.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

asp与sql网页数据库程序设计12.docx

1、asp与sql网页数据库程序设计1212ASP与ActiveX DLL12-1什么是MTS12-2如何创建ASP组件12-3将组件加入MTS中12-4调用MTS内的ASP组件12-1 什么是MTS12-1-1MTS概述MTS是一种以Microsoft COM(对象模型组件)技术为基础,并且以服务器为中心的三层应用系统开发技术。对于MTS应用系统而言,在服务器上执行的逻辑组件,其运行是客户端的Microsoft DCOM技术实体中心所引起的,并且服务器上运行的逻辑组件完全处于MTS控制下执行。对于这种多层次结构的应用系统而言,其客户端的环境可以是各种不同类型的应用程序开发系统,只要这些系统支持M

2、icrosoft的COM以及DCOM技术,即可利用MTS的特性开发多层的应用系统;这些应用系统如在Microsoft IIS(Internet Information Server)上执行的ASP(Active Server Pages)脚本语言等,皆可应用MTS特性开发多层的应用系统,如图12-1所示是MTS应用结构图。图12-1 MTS 应用结构图对于MTS的多层结构模型通常运用于多种不同的数据库存取方面,这些数据库如:MS SQL,ORACLE等。那么多层应用系统与MTS到底是什么样的关系,为什么要用MTS才能建立起多层的应用系统呢?MTS与多层应用系统之间的关系,请参考图12-2。图1

3、2-2 标准三层结构模型如图12-2所示,在客户端对数据库进行数据的存取前,必须通过MTS应用组件的协助,才能进行后台数据库的存取。以此方式设计的程序,系统都不会直接接触到后台的数据库系统,因此使用MTS的一项优点就是可以保护后台数据库不被任意地存取,这种方式对于重要的数据库系统可以得到最大的保护。在上图中的中间部分是被称为中间层服务器的应用组件。此应用组件可以由程序员使用各种不同的开发工具进行开发,但是这些开发工具必须能够把程序编译生成动态链接库,并且支持COM组件的开发。而为了使这些组件可以在MTS环境下有效地运行时,程序员必须遵守以下几个准则: 通过一个简单的API调用,创建一个对MTS

4、 Context Object的引用。 由于这些调用程序结束时,MTS无法重复地使用它们的资源,因此在MTS组件的处理过程中,不要存储有关状态信息(例如:局部变量或是全局变量等)。如果必须存储这些状态,可以将这些状态存放在数据库中或是MTS的共享属性管理(Shared Property Manager)中,并得以随时调用并取得这些状态信息。 当组件成功地完成处理后,必须调用MTS Context Object内的“SetComplete”方法。此方法可以通知MTS组件已经完成工作并停止服务。 如果组件无法执行成功,必须使用“SetAbort”方法通知MTS放弃继续执行此组件的服务程序。当设计出

5、来的应用组件都能按照这些准则运行,将对MTS的管理及运行有非常大的益处。关于如何将这些MTS应用组件转成DLL组件,并加到MTS的环境中,笔者将在稍后的章节中做详细的叙述。特别说明 事实上,多层应用系统不仅只是包含图12-2所示的三层结构应用系统模型。凡客户端与应用组件在不同设备上执行,并利用网络连接取得相关信息者,皆称为层。通常层数在两层以上者,称之为多层应用系统。但在现今多数应用环境中,以三层构建的应用系统模型最为常见,因而笔者特以此层为范例说明。12-1-2何时该使用MTS呢对于以Microsoft COM为基础的应用组件而言,在设计与开发多层应用系统过程中,MTS确实有很大优势。对于M

6、TS如何在应用方面增加其附加值的部分,最好的方法是了解一下“何时使用MTS”的有关说明。1. 有关Web-Based的应用在许多应用中,利用Web做为商业间的数据传输方式,使用浏览器就可以非常简单地连接至服务器,并提供客户端强大的功能以及动态数据的展示。利和现今网络互连的便捷性,用户可以使用浏览器连接至世界上任一角落的服务器,执行数据的存取。近来值得注意的是在网页上具有用户输入功能以及动态数据展示的功能,已经成为所有Web应用系统的一部分。而通常这些Web应用系统都是以HTML为基础,并且在这些网页上具有要求输入然后进行数据库操作等功能。因此如何处理这些由用户输入的数据,并且数据库响应相应的要

7、求是很重要的。向数据库索取用户要求的数据,是通过中间服务器及组件完成这些动作的,用户无须直接对数据库进行任何操作。使用以MTS为基础的多层结构应用系统模型是非常适合这种要求的,在Web上使用这种应用模型有下列优点: 多数的Web服务器仅提供部分或完全不提供任何多层结构的应用,这些Web服务器通常可以提供脚本语法上的应用。 大多数的Web脚本虽然其本身并不提供数据库的存取服务,但它们通常可以提供与外部应用系统的连接,进而提供原系统功能之外的服务。 提供共享的用户界面,不需理会用户所使用的平台。实现多层结构应用系统模型最好的方法是在Web应用系统上使用CGI应用程序。目前在Web环境中使用的CGI

8、程序种类很多,笔者将以Visual Basic所产生的“ActiveX DLL”做为Web应用系统的CGI程序,为读者进一步说明这些“ActiveX DLL”如何产生、如何与MTS结合。如果用户对其他的CGI产生与结合方式有兴趣,请自行参考与Web CGI相关的书籍。2. IIS与Active Server Pages对于以Web作为应用系统的前端用户而言,MTS与Microsoft IIS 4.0无疑提供了多层结构应用系统模型开发上的一种完美组合。由于IIS 4.0所附加的ASP(Active Server Pages)是一种以Visual Basic及Javascript为脚本,以标准HT

9、ML命令输出的应用系统开发语言,因而其非常适用于交互式网页的开发。ASP文件是以“.ASP”作为扩展名。那么ASP到底能提供哪些服务呢?例如:用户在网页上“用户姓名”的字段中输入“陈峰棋”,系统通过MTS与ASP应用系统的相互协作,并且直接通过ODBC就可以向数据库要求调阅出用户姓名为“陈峰棋”的所有相关信息。并且ASP会将这些调阅出的信息以标准HTML语言生成动态网页,直接显示在客户端的浏览器上。12-1-3使用MTS的优点当ASP对MTS组件进行调用时,此调用的需求可以同时来自于多个客户端,而此组件可以实现下列功能: 可以执行应用逻辑的任何计算需求。 通过与ODBC 3.0兼容的驱动程序,

10、直接存取一个或是多个不同的数据库系统。 使用标准的COM组件并且通过SNA Server 4.0版的协助,直接存取大型计算机上的应用系统。 通过MSMQ发送或是接收信息。 调用其他组件以执行其他应用组件的功能。由于MTS结构复杂,其相关叙述也很多,如果读者对于MTS有兴趣,不妨参考MTS相关书籍。那么既然使用MTS可以达到共享组件的存取、数据库的存取、交互式网页的创建等好处,那么该如何在网页中使用MTS组件的服务呢?从下一节开始,笔者将介绍如何设计这些MTS组件。MTS 的调用程序当组件根据规定创建,应用系统即可继承MTS的优点(例如:更高的效能、易于管理、较好的移植性),当DLL组件要加入M

11、TS中或是从MTS中删除时,操作方式也非常简便、容易。图12-3 如何建立ASP 组件12-2 如何创建ASP组件在本节中,笔者希望读者了解如何在微软的多种操作平台下生成这些供ASP调用的“ActiveX DLL”组件,以及如何使用Visual Basic产生这些“ActiveX DLL”组件。事实上,ASP中的许多组件都是使用Visual Basic编写出来的,ASP基本上使用的是Visual Basic Scripting脚本语言。如何在“ActiveX DLL”中使用ASP几个固有的对象(如:Response,Equest,Application,Session等);如果在Visual

12、Basic中直接使用这些组件,是否代表着就可以直接在Visual Basic中编写ASP程序代码,进而达到ASP程序代码“组件化”的目的呢?答案是肯定的。那么在微软的这些操作系统中,哪些可以使用MTS组件呢?下面所示的是可以使用MTS组件的操作系统: Windows 98 Windows me Windows NT 4.0 Windows 2000以上所示的Microsoft操作平台,Windows 98与Windows NT Server 4.0是非常类似的,但在Windows 2000与Windows me操作平台方面,由于微软已经把MTS整合进COM结构,构建了COM+,因此在“Acti

13、veX DLL”的产生上,将会有所不同。12-2-1新建工程如果希望在Visual Basic中创建供ASP调用的MTS组件,则必须先创建相关的工程。在“EX12-1”的范例中,笔者将先介绍如何创建MTS组件专用的工程。由于Microsoft在不同操作系统上MTS结构有所变化,因此在工程的“引用”上也有所不同,笔者会对这两种环境进行详细的说明。范例程序:EX12-1创建准备设计成为MTS组件的Visual Basic工程。范例说明虽然微软的MTS结构已经有所改变,但是在这些操作平台上创建 MTS组件所用的工程基本上是相同的。这些操作系统平台MTS组件的基本差异,仅仅是在Visual Basic

14、的“引用”选项上有所不同。进入Visual Basic,新建工程画面如图12-4所示。图12-4 创建新工程如图12-5所示,选择“ActiveX DLL”,即可创建一个MTS组件所用的新工程。图12-5 选择 “ActiveX DLL”选项双击“ActiveX DLL”,即可见到如图12-6所示的画面。图12-6 创建完成的新工程12-2-2设置引用由于在Windows 98/NT与Windows me/2000系统上,使用MTS的方式不同,因此在本节将分别以Windows 9x与Windows 2000两个不同平台为例加以说明。在本章开始,笔者已经谈到有关这些平台上的不同点仅限于“引用”不

15、同。接下来直接进行的是如何在Windows 9x/NT系统上,增加Visual Basic的引用。1. Windows NT 4.0 IIS与Windows 98 PWS对于引用而言,只要Windows NT与Windows 98分别在安装“Option Pack 4.0”、“PWS”时,安装了“Transaction Server”即可。这时,读者就可以在“引用”窗口中找到,如图12-10中标示的“Microsoft Transaction Server Type Library”,并且在前面的空格中打勾即可。以下的范例“EX12-2”即为在Windows NT 4.0加入“Microsof

16、t Active Server Pages Object Library”及“Microsoft Transaction Server Type Library”的范例与说明。范例程序:EX12-2笔者以范例“EX12-1”所建工程为基础,在Windows 98/NT操作平台上设置新的引用。在设置引用完成之后,将范例“EX12-1”另存为“EX12-2”。范例说明在Visual Basic中设置新增“引用”为“Microsoft Active Server Pages Object Library”。在Visual Basic中设置新增“引用”为 “Microsoft Transaction

17、Server Type Library”。打开菜单中的“工程”,选择“引用”。如图12-7所示。图 12-7 打开“工程”中的“引用”打开“引用”选项后,读者会见到如下所示的画面。图12-8 打开“引用”后的画面接下来拖动垂直滚动条并且找到“Microsoft Active Server Pages Object Library”,在找到“Microsoft Active Server Pages Object Library”后,请在前面的空格中单击,加入成为引用的项目。图12-9 选取 “Microsoft Active Server Pages Object Library”的项目在Wi

18、ndows NT 4.0或Windows 98操作平台上,再增加“Microsoft Transaction Server Type Library”的引用,如图12-10所示。图12-10 增加“Microsoft Transaction Server Type Library”的引用将新增“引用”之后的工程另存为“EX12-2”,如图12-11所示。图12-11 另存为新工程的执行画面2. Windows me或Windows 2000对于Windows 2000操作平台,ASP所引用的项目未变,改的只是Microsoft Transaction Server的部分。由于在Windows

19、2000环境中,Microsoft Transaction Server被并入成为“COM+”的组件。因此,当用Windows 2000做为开发MTS组件的平台时,如要达到这项功能则必须引用“COM+ Services Type Library”。范例程序:EX12-3同样以范例“EX12-1”所创建的工程为基础,开始在 Windows Me/2000操作平台上设置新的引用。在设置引用完成之后,将范例“EX12-1”另存为“EX12-3”。开始与“Windows NT 4.0 IIS & Windows 98 PWS”的操作相同,打开菜单“工程”中的“引用”选项。范例说明在Visual Bas

20、ic中设置新增“引用”为“Microsoft Active Server Pages Object Library”。在Visual Basic中设置新增“引用”为 “COM+ Services Type Library”。(1)将垂直滚动条向下移并找到“Microsoft Active Server Pages Object Library”,并选中“Microsoft Active Server Pages Object Library”,加入成为引用。(2)找到“COM+ Services Type Library”并选中,成为可用的引用。图12-12 在Windows 2000中选用“

21、Microsoft Active Server Pages Object Library”图12-13 在Windows 2000 中选用“COM+ Services Type Library”(3)将新增引用之后的工程另存为“EX12-3.vbp”。图12-14 另存新工程12-2-3如何设计ActiveX DLL的内容完成了上一节两种不同操作系统中“Microsoft Active Server Pages Object Library”、与MTS有关的函数库的加入工作后,接下来的编译方法是完全相同的。接下来将详细说明如何使用MTS函数库和ASP函数库,在本节中还会为读者示范如何将自制的“

22、ActiveX DLL”加入MTS中,供ASP程序调用。1. 为程序加入MTS对象和ASP对象在使用自制的ActiveX DLL组件之前,必须为这个程序加入一些命令,这样在编辑之后的ActiveX DLL才会有响应。以下是范例“EX12-4”的说明。范例程序:EX12-4笔者以已经加入“Microsoft Active Server Pages Object Library”和“MTS 组件”的范例为基础(范例用“EX12-2”或“EX12-3”,完全视读者目前所使用的操作系统而定),这里以“EX12-3”为基础,在这个工程中分别加入“ASP 函数库”的控制命令及MTS的控制命令。范例说明 在

23、本范例程序的对象类别模块中,定义ASP的对象。 在本范例程序中,定义起始模块的子程序。 在起始模块的子程序中,设置调用已经定义的ASP函数库。(1)在范例“EX12-3”名为Class1的模块内,定义所使用的ASP对象。01. Option Explicit02. Dim m_Response As Response03. Dim m_Request As Request04. Dim m_Server As Server05. Dim m_Application As Application06. Dim m_Session As Session程序说明第02行:定义m_Response的对

24、象类型为ASP的Response对象。第03行:定义m_Request的对象类型为ASP的Request对象。第04行:定义m_Server的对象类型为ASP的Server对象。第05行:定义m_Application的对象类型为ASP的Application对象。第06行:定义m_Session的对象类型为ASP的Session对象。(2)在范例“EX12-3”名为Class1的对象类别模块中,加入对象模块类别的起始子程序。01. Private Sub Class_Initialize()02. Dim objContext As ObjectContext03. Set objConte

25、xt = GetObjectContext()04. Set m_Response = objContext(Response)05. Set m_Request = objContext(Request)06. Set m_Server = objContext(Server)07. Set m_Application = objContext(Application)08. Set m_Session = objContext(Session)09. End Sub程序说明第01行:定义名为“Class_Initial”的子程序,其作用是当此对象类别模块被调用时,能自行定义所有与ASP对象

26、的关联性。第02行:定义objContext对象的类型为MTS的ObjectContext。第03行:定义objContext对象为调用MTS所用的对象名称。第04行:定义m_Response的对象方法是使用MTS objContext的调用方法,直接存取ASP函数库的Response对象。第05行:定义m_Request的对象方法是使用MTS objContext的调用方法,直接存取ASP函数库的Request对象。第06行:定义m_Server的对象方法是使用MTS objContext的调用方法,直接存取ASP函数库的Server对象。第07行:定义m_Application的对象方法是

27、使用MTS objContext的调用方法,直接存取ASP函数库的Application对象。第08行:定义m_Session的对象方法是使用MTS objContext的调用方法,直接存取ASP函数库的Session对象。将范例“EX12-3”工程、对象类别模块分别另存为“EX12-3”,“EX12-4”。至此,“EX12-4”经过编译之后,已经可以被ASP程序调用。但是在范例“EX12-4”的程序代码中,尚无任何可供ASP调用的子程序。因此,笔者在名为“Class1”的对象类别模块中,加入一段名为“ShowMessage”的子程序,本段子程序主要是使用ASP的Response对象在网页上显

28、示出“自制的 ActiveX DLL 实验”文字,并且在HTML文件上加上“换行()”的功能。在“Class1”对象类别模块中加入以下的子程序,并保存为“EX12-5”。 图12-15 另存工程图12-16 另存对象类别模块范例程序:EX12-501. Public Sub ShowMessage()02. m_response.Write 自制的 ActiveX DLL 实验03. End Sub程序说明第01行:定义名为“ShowMessage”的子程序。第02行:使用已经定义过的m_Response对象的Write方法,将此段文字显示在网页上。第03行:结束子程序的执行。到目前为止,Ac

29、tiveX DLL的所有定义、子程序都已编写完毕,但该如何将这段名为“Class1”的对象类别模块编译成ActiveX DLL供其他程序调用呢?下面,继续下一节的编译工作。12-2-4编译ActiveX DLL下面将以“EX12-5”为例,直接将其编译成“EX12-5.dll”供其他程序调用。以下是编译ActiveX DLL的步骤。(1)如下图所示,打开“文件”菜单。图12-17 选择“文件”命令如下图所示,选择菜单中的“生成EX12-5.dll”命令。图12-18 选择“生成 EX12-5.dll”命令单击“生成EX12-5.dll”后,将会出现如图12-19所示画面。图12-19 即将制成

30、执行文件的画面单击“确定”按钮,此ActiveX DLL将会生成“EX-12-5.dll”文件,并且存放在“EX12-5”目录下。在上图,读者还可见到“”按钮可供选择。当读者单击此按钮后,将见到如图12-20所示的画面。在此窗口有许多“EX12-5.dll”的相关选项。图12-20 有关生成ActiveX DLL 的选项在上图中,读者可以看到有关“版本号”、“应用程序”、“版本信息”等选项,这些选项在前面的章节中已经介绍过,在此不多作叙述。在图12-21所示的“编译”选项卡中,有一些相关信息是值得注意的。在上图中,对于一般的标准执行文件,其“DLL 基地址”是无法改变的。“DLL 基地址”选项

31、主要用于设置程序的基地址,从而覆盖DLL文件的默认位置(在0X10,000,000处)。操作系统首先试图在指定的或者默认的位置加载一个程序,如果没有足够空间,那么系统将重新定位该程序。这点对一般DLL文件而言是无需更改的,但是如果用户将一个非常大的系统程序设计成DLL文件时,就必须改变DLL的基地址以便容纳此应用系统的执行。图12-21 “编译”选项卡中的选项接着回到图12-19“生成工程”窗口,在单击“确定”之后,在 EX12-5目录中便会生成EX12-5.dll文件,如下图所示。图12-22 EX12-5目录下的文件显示EX12-5.dll已经成功地编译并且生成,那么该如何在ASP的程序中调用这个具有MTS组件调用功能的ActiveX DLL呢?由于ActiveX DLL尚未加入MTS组件中,因此现在仍无法提供给其他应用系统调用。在下一节中,笔者将介绍如何将自制的ActiveX DLL加入成为MTS组件。12-3 将组件加入MTS在Windows操作平台,由于Windows NT 4.0、Windows 2000同属于NT技术,文件结构基本相同,这里将它们归属为NT操作平台。另一类则归为Windows 9x操作平台。因此,这个自制的ActiveX DLL在安装上将分为NT以及Windows 9x不同平台

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1