用VB扩展Authorware数据库应用能力的方法

2012-01-23 08:00李红岩宁梓淯
中国医学教育技术 2012年1期
关键词:数据源控件代码

李红岩,李 萌,宁梓淯

哈尔滨医科大学大庆校区,黑龙江 大庆 163319

作为一款多媒体开发软件平台,Authorware以其易学易用、功能强大、交互功能较好的优点而具有了较高的人气指数,在多媒体研发领域一直占据着重要的一席之地,也令许多多媒体开发人员在其他软件版本更叠速度很高的今天仍对Authorware 7保持眷恋。在数据库应用方面,Authorware虽不能直接访问数据库,却可以通过Microsoft的开放数据库互联即ODBC(open database connective)实现数据库操作[1],数据交换完全基于ODBC技术规范[2]。但Authorware在数据库应用方面的表现却存在很多问题,功能相对简单,存在局限性,这是制约Authorware向更加复杂应用方向发展的一个技术瓶颈。在这方面很多开发人员也做了很多努力。笔者在研究他人成果的基础上,结合自己的开发经验,认为ActiveX控件技术为Authorware提供了强大的生命力。用其他语言开发ActiveX控件,并为Authorware所用是一种较为经济和实用的有效途径。

1 ActiveX控件概述

ActiveX是Microsoft的元素软件标准。简单地说,ActiveX技术是一种共享程序数据和功能的技术,它由微软提出并大力推广,并已成为事实上的标准[3]。ActiveX是一组基于组件模型(component object model,COM)的技术,其目标是提供一种与操作系统平台无关的、可在应用程序之间相互访问对象的机制。ActiveX技术的优点是可以灵活、高效地插入到应用程序中,方便实现代码重用[4]。

ActiveX控件的开发真正实现了语言无关性,各种开发语言只要具备ActiveX控件的开发功能均能制作符合要求的ActiveX控件,如VC++、VB、Delphi等。不过制作出的ActiveX控件需要经过系统注册,才可以在其他软件中被正常调用。

2 用VB制作数据库应用控件

Visual Basic是微软公司的一款开发语言,功能完善,具有较强的数据库应用能力,属全编译系统工具,可以制作OCX类型的和DLL类型的ActiveX控件,开发者只要按数据库应用需求设计控件的界面和代码即可。该文以OCX类控件为例。

2.1 VB中的数据库应用

VB的数据库应用是建立在ADO控件基础上完成的。ActiveX数据对象(activeX data object,ADO)是应用层的编程接口,ActiveX数据对象ADO封装并实现了OLE DB的所有功能,它通过OLE DB提供的COM接口访问数据,可访问各种类型的数据源,既适合于 SQL Server、Oracle、Access等数据库应用程序,也适合于Excel电子表格、文本文件和邮件服务器[5],具有较好的灵活性与实用性。

VB提供的Adodc控件,实际上是将ADO的Connection、Command、RecordSet、Error、Parameter 和 Field对象及功能结合在一个可视化的控件中,使用该控件操作数据库时,不用编写许多代码,可以直接完成[6]。应用时,由于Adodc控件不是内部标准控件,所以不直接存在于工具箱中,需手工添加。使用“工程”→“部件”命令,在窗口中勾选“Microsoft ADO Data Control”项,单击确定按钮后可在工具箱中看到Adodc控件。Adodc控件在应用时需在其“属性页”中设置连接字符或数据源、指定数据源后才能用其他控件绑定数据源进行数据库应用。

VB 中的 Label、TextBox、ListBox、ComboBox、Check Box、Image、Picture等内部标准控件可以绑定到窗体上任意一个ADO数据控件上,要完成绑定需要设置绑定控件的两个主要属性:DataSource和DataField,可以在属性窗口中找到它[7]。

2.2 创建ActiveX控件

在VB的新建项目中选择“ActiveX控件”项,可在对象窗口中设计具体的控件对象与代码。该例设计一个选择题控件,将数据库中的题目顺序显示、答题和查看答案。首先将控件大小调整好,并在控件上按3.1中的方法添加Adodc控件。在添加的Adodc1对象上单击右键,选择“属性页”,出现属性页窗口,选取ODBC数据源名称(在Authorware中预先设定)和记录源,具体各项使用与含义请参阅有关VB书籍。Adodc对象设置完毕后,在控件窗体上添加各种需要的控件,并在各自的属性窗口中用DataSource属性绑定数据源,用DataField属性绑定字段,在相应按钮的Click事件中添加代码(如图1所示),其中“答案”按钮的代码为:

图1 设计环境与相应代码界面图

笔者同时也设计了用于试题维护的ActiveX控件,实现了对数据库表中试题的增加、更新与删除等操作,在VB中实现这样的操作使用窗体控件与SQL语句将使应用变得非常简单。

控件调试成功后,选择“文件”菜单中的“生成XXX.OCX”命令,其中的XXX代表控件名称,编译完成后会在指定文件夹中生成相应的OCX文件。

3 在Authorware中调用VB开发的ActiveX控件

3.1 ActiveX控件的注册

在使用ActiveX控件之前,一定要对该控件进行系统注册。注册分为两种:一种为手动注册,一种在Authorware中用程序代码自动注册。多数情况下选择自动注册,手动注册仅仅在调试时比较常用。Authorware提供了ActiveX控件注册和撤消注册两个函数,语法格式如下:

ActiveXControlRegister(″FileName″),其中的 File Name应包含文件路径和文件名。

ActiveXControlUnRegister(″FileName″)为撤消ActiveX 控件注册[8]。

该例中的ActiveX控件choice.ocx注册代码为:

ActiveXControlRegister(FileLocation^″choice.ocx″);

3.2 Authorware调用ActiveX控件

在Authorware中应用ActiveX控件前必须保证控件已被注册,所以为实现控件的自动运行,可在流程线上的ActiveX控件图标前用计算图标实现注册,如果ActiveX控件被注册,用户可用“插入”→“控件”→“ActiveX”命令打开ActiveX Control对话框。先前制作的ActiveX控件会出现在对话框中,如图2所示。选择后确定就可以将此ActiveX控件添加到流程线上,同时显示控件的属性窗口,以供用户设置。

图2 添加ActiveX控件

完成ActiveX控件添加后就可以运行程序看到最终的运行效果,如图3所示。

图3 课件流程图与运行效果图

通过流程图可以看出,在使用过程中先行在Authorware中实现数据库连接,然后调用自制的ActiveX控件,“连接数据库”图标中的代码如下:

dbType:="Microsoft Access Driver(*.mdb)"—表示使用access数据库驱动

另外,试题库维护模块的运行效果如图4所示。

图4 题库维护控件的运行效果界面图

ActiveX技术是基于COM的组件技术,可以在网络中实现资源的共享与信息的通讯,为解决Authorware的功能扩展提供了一条简便的技术途径。目前COM组件技术已经得到了很大的发展,已经渗透到Internet各种软件中去,包括一些基本的协议软件[9]。文中所用实例采用 VB6开发,数据库采用ACCESS,课件打包后,在Windows 2000、Windows XP 和Windows 7等操作系统中正常运行。

制作ActiveX的同时,用户也可以根据需要定制相关的控件属性与事件,Authorware同样为ActiveX控件的这些属性和事件的调用提供了GetSprite Property、SetSpriteProperty 和 CallSprite 函数[10]。当然,在Authorware实际应用数据库的过程中还会有种种的不完善,需更好地去解决,但AxtiveX技术利用了高级语言的标准化控件工具所提供的良好数据库开发环境,结合Authorware的自身特点,实现了较强的数据库应用能力,这些无疑是扩展Authorware数据库应用能力的一种有效手段。

[1]苏旺辉,田丽娜,霍锦霞,等.利用ODBC接口加强Authorware题库系统的开发[J].甘肃科学学报,2008,20(2):156-158

[2]李红岩.基于数据库的Authorware动态开发技术与应用[J].中国医学教育技术,2008,22(3):294-295

[3]李媛.ActiveX 控件的应用[J].电脑开发与应用,2011,24(4):56-58

[4]台安,胡怀瑾,李怀成.基于ActiveX组件技术的VFP在Web中的应用[J].计算机与现代化,2010,(4):98-102

[5]王祥瑞,黄国华.ADO数据库访问技术[J].长春大学学报:自然科学版,2010,20(1):62-63

[6]蒋加伏,张林峰.Visual Basic程序设计教程[M].北京:北京邮电大学出版社,2009:291-293

[7]王晓敏,徐晓敏.Visual Basic程序设计[M].2版.北京:中国铁道出版社,2008:246

[8]郭新房,倪宝童,王健,等.Authorware 7.0 多媒体制作基础教程与案例实践[M].北京:清华大学出版社,2007:252-253

[9]张盛,卢建华,卢欣华.COM 组件技术研究[J].科技信息,2008,(26):11-12

[10]施泽权,胡鉴新.浅淡ActiveX控件在Authorware中的应用[J].中国科技信息,2008,(8):111

猜你喜欢
数据源控件代码
基于.net的用户定义验证控件的应用分析
创世代码
创世代码
创世代码
创世代码
关于.net控件数组的探讨
Web 大数据系统数据源选择*
基于不同网络数据源的期刊评价研究
基于真值发现的冲突数据源质量评价算法
WONCA研究论文摘要汇编
——初级保健晚期疾病患者照顾者的识别障碍:3个数据源的三角化测量