在Visual Basic编程中非Access数据库的应用

来源 :东方教育 | 被引量 : 0次 | 上传用户:sssss1O
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:Visual Basic有着强大的数据库存取能力,不仅能够直接支持Ms Access数据库,而且通过其内部安装的ISAM驱动程序使它能间接支持FoxPro、dBASE等外來数据库。本文不仅从VB数据库体系结构的角度探讨了VB对这些外来数据库的支持,还结合了一些实例具体阐述了使用数据库存取对象变量的方法实现这些外来数据库的新建、库结构修改、显示及其运行环境设置。
  关键词:Visual Basic Access;外来数据库;数据库
  Visual Basic专业版提供了对数据库应用的强大支持。尤其提供了使用数据控件和绑定控制项,使用数据库存取对象变量(Data Access Object Variable),直接调用ODBC 2.0 API接口函数等三种访问数据库的方法。对其标准内置的Ms Access数据库,它可以提供不弱于专业数据库软件的支持,可以进行完整的数据库维护、操作及其事务处理。在VB中,将非Access数据库称为外来数据库。对于FoxPro、dBASE、Paradox等外来数据库,虽然借助VB的Data Manager 能够对这些数据库进行NEW、OPEN、DESIGN、DELETE等操作,但在应用程序的运行状态中并不能从底层真正实现这些功能。本文从使用数据库存取对象变量的方法出发,实现了非Access格式数据库(以FoxPro数据库为例)的建新库、拷贝数据库结构、动态调入等操作,阐述了从编程技巧上弥补VB对这些外来数据库支持不足的可行性 。
  一、VB数据库的体系结构。VB数据库的核心结构是所谓的MicroSoft JET数据库引擎,JET引擎的作用就像是一块"面 板",在其上可以插入多种ISAM(Indexed Sequential Access Method,即索引顺序存取方 法) 数据驱动程序。JET引擎为Access格式数据库提供了直接的内部(build-in)支持,这就是VB对Access数据库具有丰富支持的真正原因。VB专业版中提供了FoxPro、dBASE(或 Xbase)、Paradox、Btrieve等数据库的ISAM驱动程序,这就使得VB能支持这些数据库格式,因而从理论上说,VB能支持所有兼容ISAM的数据库格式(前提是只需获得这些数据库的ISAM驱动接口程序)。由上可见,Ms JET引擎實质上提供了:一个符合ANSI标准的语法分析器;为查询结果集的使用而提供的内存管理功能;同所支持的数据库的外部接口;为应用代码提供的内部接口。实际上,在VB中从一种数据库类型转化为另一种数据库类型几乎不需要或只需要很少的代码修改。而且,尽管dBASE、Paradox本身的DDL (Data Definition Language,即数据定义语言)和DML(Data Manipulation Language,即数据操纵语言)是非结构化查询的,但它们仍然可以使用VB的SQL语句和JET引擎来操纵。
  从VB的程序代码的角度来看,ODBC,ISAM驱动程序以及Ms Access数据库的整个外部结构够可以统一为一个一致的编程接口。也即是说,提供给VB应用程序员的记录集对象视图同所使用的数据库格式及类型是相互独立的。即对FoxPro等数据库仍然可以使用众多的数据库存取对象变量,这就为非Access数据库的访问提供了最重要的方法。
  二、使用非Access数据库时的参数设置及配置文件的参数读取如果在VB的程序中使用了数据库的操作,将应用程序生成EXE文件或打包生成安装程序后,则必须提供一个配置(.INI)文件,在INI文件中可以对不同类型的数据库进行设置。如果找不到这个INI文件, 将会导致不能访问数据库。通常情况下,INI文件的文件名和应用程序的名称相同,所以如果没有指明,VB的程序会在Windows子目录中去找和应用程序同名的INI文件。可以使用VB中的SetDataAccessOptions语句来设置INI文件。 SetDataAccessOptions语句的用法如下:SetDataAccessOptions 1 ,IniFileName其中IniFileName参数指明的是INI文件的带路径的文件名。值得注意的是,当应用程序找不到这个INI文件时,或在调用 OpenDataBase函数时对其Connect参数值没有设定为VB规定的标准值,如对FoxPro 2.5格式设定为了" FoxPro;"(应为" FoxPro 2.5; "),或者没有安装相应的ISAM驱动程序,则此时VB会显示一条错误信息" Not Found Installable ISAM "。通常,INI文件在应用程序分发出去以前已经生成,或者在安装时动态生成,也可以在应用程序中自己生成。 通常这种 INI文件中有" [Options]"、"[ISAM]"、" [Installed ISAMs]"、"[FoxPro ISAM]"、"[dBASE ISAM] " 、" [Paradox ISAM] "等设置段,对于一个完整的应用程序则还应有一个属于应用 程序自己的设置段如" [MyDB]”。可在其中设置DataType、Server、DataBase、 OpenOnStartup、DisplaySQL、QueryTimeOut等较为重要的数据库参数,并以此限定应用程序一般的运行环境。 Windows API接口函数在Kernel.exe动态链接库中提供了一个OSWritePrivateProfileString函数,此函数能按Windows下配置文件(.INI)的书写格式写入信息。在通常情况下,应用程序还需要在运行时读取配置文件内相关项的参数。比如PageTimeOut(页加锁超时时限)、MaxBufferSize(缓冲区大小)、LockRetry(加锁失败时重试次数)等参数,通过对这些参数的读取对应用程序运行环境的设定、潜在错误的捕获等均会有很大的改善。设此应用程序的配置文件为MyDB.INI,则具体过程如下:Funtion GetINIString$( Byval Fname$ ,Byval szItem$ ,Byval szDeFault$ ) ' 此自定义子函数实现INI 文件内设置段内参数的读取Dim Tmp As String,x As Integer Tmp = String( 2048,32 ) x = OSGetPrivate ProfileString(Fname$,szItem$ , szDefault$,Tmp,Len(Tmp) ,"MyDB.INI " ) GetINIString = Mid$( Tmp,1,x ) EndFunction   三、数据存取对象变量对外来数据库编程的方法及其实例在VB专业版数据库编程的三種方法中,第二种-使用数据库存取对象变量(DAO)的方法最具有功能强大、灵活的特点。 它能够在程序中存取ODBC 2.0的管理函数;可以控制多种记录集类型:Dynaset,Snapshot 及Table记录集合对象;可以存储过程和查询动作;可以存取数据库集合对象,例如 TableDefs,Fields,Indexes及QueryDefs;具有真正的事物处理能力。因而,这种方法对数据库处理的大多数情况都非常适用。由于VB中的记录集对象与所使用的数据库格式及类型是相互独立的,所以在非Access数据库中也可以使用数据库存取对象变量的方法。因而 对FoxPro等外来数据库而言,使用数据库存取对象变量的方法同样也是一种最佳的选择。有一点需要注意的是,VB的标准版中仅能使用数据控件(Data Control)对数据库中的记录进行访问,主要的数据库存取对象中也仅有Database、Dynaset对象可通过数据控件的属 性提供,其它的重要对象如TableDef、Field、Index、QueryDef、Snapshot、Table等均不能在VB的标准版中生成,所以使用数据存取对象变量的方法只能用VB 3.0以上的专业版。非Access数据库的新建及库结构的修改VB专业版中的数据库存取对象变量可以分为两类,一类用于数据库结构的维护和管理,另一类用于数据的存取。其中表示数据库结构时可以使用下面的对象:DataBase、TableDef、Field、Index,以及三个集合 (Collection): TableDefs、Fields和Indexes 。每一个集合都是由若干个对象组成的,这些数据对象的集合可以完全看作是一个数组,并按数组的方法来调用。一旦数据库对象建立后,就可以用它对数据库的结构进行修改和数据處理。对于非Access数据库,大部分都是对应于一个目录,所以可以使用VB的MkDir语句先生成一个目录,亦即新建一个数据库。而每一个非 Access数据库文件可看作是此目录下的一个数据表(Table),但实际上它们是互相独立的。下面是新建一个FoxPro 2.5格式数据库的程序实例。
  Sub CreateNew ( ) Dim Db1 As database , Td As TableDefs Dim T1 As New Tabledef , F1 As New Field,F2 As New Field , F3 As New Field Dim Ix1 As New Index Dim Path As String Const DB_TEXT = 10 , DB_INTEGER = 3 ChDir "\" Path$ = InputBox( " 请输入新路径名: ", "输入对话框" ) MkDir Path$ ' 新建一个子目录Set Db1 = OpenDatabase(Path$, True, False, "FoxPro 2.5;") Set Td = Db1.TableDefs T1.Name ="MyDB" '新建一个数据表,数据表名为MyDB F1.Name = "Name",F1.Type = DB_TEXT,F1.Size = 20 F2.Name = "Class",F2.Type = DB_TEXT, F2.Size = 20 F3.Name = "Grade",F3.Type = DB_INTEGER T1.Fields.Append F1 '向数据表中添加这些字段T1.Fields.Append F2。
其他文献
摘要:本文从影视制作中不同风格镜头的应用、镜头剪接与组接、以及对叙事主体的呈现三个角度来对影視制作中镜头的应用尝试进行了简要分析。  关键词:影视制作;镜头应用  影视制作中的镜头又被称作镜头语言,即通过镜头拍摄的画面及主题的变化,让镜头按照一定的规律排列融合起来,让镜头像语言一样传达拍摄者的心声与意图。优秀的镜头语言能够直接触及观众的视听感官,具有很强的艺术渲染力和感染力。然而在实际的拍摄过程中
期刊
摘要:在水下传感器定位装置的研究中,一般的水下定位系统在传感器的选择上都是基于声呐设备,水下声呐的定位系统,依据其不同的基阵可以大致分为长基线、超短基线以及短基线水下定位系统,上述三种定位系统,所采用的声呐传感器布阵方式和采用的定位算法都不相同,本文主要介绍其中的短基线定位系统的设计。  关键词:水下短基线定位系统;总体设计;水下传感器  1.引言  水下短基线定位系统一般采用主动应答的方式工作,
期刊
摘要:海洋观是人们对整个海洋及人与海洋关系的总的看法和根本观点。由于近代遭遇的民族危机,中国的海洋观经历了从传统到近代化的转变。主要表现在:逐步重视海疆的价值;具有了一定的海洋主权意识与相关概念的提出;近代海防观开始萌发与发展;海军开始受到重视,并开始建设近代化海军;以舆图的方式对中国的所属海域进行标识。然而,虽然中国近代海洋观已逐渐发展成熟,但其发展过程中不乏众多制约性因素。  关键词:海疆危机
期刊
摘要:大学校园本是一座神圣的象牙塔,然而近年来频繁爆出的校园性骚扰事件,让学生、家长以及社会感到失望,校园环境的纯洁性和安全性让人怀疑和担忧。高校性骚扰事件的频发,在很大程度上强烈冲击高校学生的道德观、法律观等,对他们形成健康的恋爱观、价值观等均有负面效应。本文通过对大学校园性骚扰事件的分析,探索其发生的原因和防治办法,希望能对避免此类事件的发生起到一定作用。  关键词:性骚扰;校园性骚扰;原因;
期刊
摘要:油画的发展与演变经历了数百年的过程,在其过程中出现过很多艺术流派和形式,但无一例外这些流派和形式都是逃脱不了当时的历史时代,同时也被当时当地的文化和历史所制约。其中油画的风格和绘画语言,也是相辅相成共同发展的。今天我们要讨论的就是有关油画风格的形成以及油画绘画语言的演变的过程。  关键词:油画风格;艺术流派和形式;绘画语言;相辅相成  油画风格与语言是相辅相成的,而且油画语言能够表达出整幅画
期刊
摘要:本文分析了地方博物馆免费开放的现状,研究了地方博物馆在文化遗产宣传普及和教育中发挥作用的途径。  关键词:博物馆;文化遗产;宣传;普及;教育  近年来,国家文化遗产保护工作的力度在逐年加大,博物馆在文化遗产宣传、普及和教育上的地位和作用也愈加凸显。在公布了《博物馆条例》之后,各地的博物馆引来了发展的黄金机遇期,在功能地位和服务范围上不断扩大, 承担的文化使命也越来越重。在此背景下,地方博物馆
期刊
摘要:随着我国经济和科学技术的不断发展和进步,信息化技术早已经成为了与人们日常生活中息息相关的技术之一,可以说信息化已经充分的融入到人们的生活中,而我们的生活息息相关。甚至还会有一部分的人离不开信息化,其中就党建信息化发展推进工作事业这个重要的领域。本文通过对党建信息化发展和网络的融合以及党建信息化发展推进工作的现状进行了分析和探讨,总结归纳出了党建信息化发展推进工作的具体策略,以供相关专业人员参
期刊
摘要:本文主要介绍四种群际偏见理论,即权威主义人格理论、现实冲突理论、相对剥夺理论和社会认同理论。这四大理论相互联系又自成一体,使群际偏见理论不断扩大,对于理解群际偏见的产生具有重要意义。  关键词:群际偏见,权威主义人格理论,现实冲突理论,相对剥夺理论,社会认同理论  一、前言  个体在社会生活中,通常会按照某种标准被划入某个群体中,例如按照地域划分的南方人和北方人;按照职业划分的教师、医生等;
期刊
摘要:大孩的心理现状是“全面二孩”政策下一个不容忽视的问题。该文以全国6-17岁独生子女为调查对象,就大孩对生二孩的态度展开调查研究。根据研究结果对家长提出了相应的建议。  关键词:全面二孩;态度;大孩心理调适  2015年10月中国共产党十八届五中全会明确提出“全面实施一对夫妇可生育两个孩子政策”后,全面二孩政策成为社会关注焦点。随着“全面二孩”政策的实施,很多家庭准备生育二孩,这意味着家庭结构
期刊
摘要:LH-6001主機板是一款基于Intel? GM45芯片组设计的高性能、低功耗的6U CompactPCI单板计算机。主板采用高可靠、抗恶劣环境设计,具有很强的环境适应性和可靠性,适用于各类兼容型工控机、便携式加固一体机、车载、舰载一体机中作为计算处理中心。本文主要介绍了LH-6001主机板的主要功能指标,主机板的关键技术,以及主机板的主要功能:系统故障诊断功能、故障诊断代码输出、BIOS免
期刊