数据库应用编程

2024-09-01

数据库应用编程(精选十篇)

数据库应用编程 篇1

关键词:Java网络数据库,编程,应用

随着我国经济社会的不断发展, 计算机网络技术的也得到了高速发展, 电子商务及动态网站的发展到了前所未有的顶峰。Java网络数据库编程在社会中也得得到了普遍的应用。JDBC简单的说就是由一组用Java语言编写的类而组成的, 它已经成为了现实社会中开发者普遍应用的一种供数据库使用标准的API。根据JDBC自身所具有的一系列类和接口, 利用一些简单的程序, 可以使开发人员在Java编程中更方便地编写有关数据库方面的应用程序。

1、JDBC介绍

JDBC (Java Database Connectivity) 是Java实现数据库主要访问的API (Application Programming Interface) , 它与Microsoft的ODBC (Open Database Connectivity) 一样, JDBC主要是建立在X/Open SQL CLI (Call Level Interface) 等基础上的。JDBC的主要是通过计算机管理存放在表中的数据, 因此定义了一系列与关系数据库, 如:数据库连接、SQL语句、结果集和元数据等, 在需要时进行交互的类和接口, 我们通常所说的JDBC的工作需要三个步骤来完成:先要建立与所需要的关系数据库完成连接;然后再向Java数据库发送所需要的SQL语句, 实现对数据库的操作;最后得到可以处理的结果。

2、JDBC的主要接口和驱动程序

2.1 JDBC的主要接口

JDBC主要提供的有针对一般开发人员应用程序的JDBC API和底层的JDBC Driver API两种接口。

JDBC API它是一系列抽象的接口, 它的实现是由驱动程序开发商提供的。主要是让开发应用程序的人员根据所编写的数据库访问Java应用程序。驱动程序是应用程序和某个数据库产品之间接口的必要链接, 它的管理器则对应用程序和驱动程序之间的交互进行控制。JDBC API主要用来连接数据库和直接调用SQL命令, 执行各种SQL语句。利用JDBC API可以执行一般的SQL语句、动态SQL语句, 以及带IN和OUT参数的存储过程。

JDBC中的驱动程序必须提供实现方法的接口。JDBC API被定义在java.sql包中, 其中定义了JDBC API用到的所有类、接口和方法, 主要的类和接口有:

(1) DriverManager类——处理驱动程序的装入, 为新的数据库连接提供支持。驱动程序要向该类注册后才能被使用。进行连接时, 该类根据JDBC URL选择匹配的驱动程序。

(2) java.sql.Driver接口——驱动程序接口, 负责确认URL与驱动程序的匹配、建立到数据库的连接等, 其中的方法需要有相应的驱动程序实现。java.sql.Connection接口——表示到特定数据库的连接, 其中的方法需要有相应的驱动程序实现。

(3) java.sql.Statement接口——为SQL语句提供一个容器, 包括执行SQL语句、取得查询结果等方法。

(4) java.sql.ResultSet接口——提供对结果集进行处理的手段。

(5) JDBC Driver API是面向驱动程序开发商的接口。对于大多数数据库驱动程序来说, 仅仅实现JDBC API提供的抽象类就可以了。也就是说每一个驱动程序都必须提供对于java.sql.Connection、java.sql.Statement、java.sql.

PreparedStatement和java.sql.ResultSet等主要接口的实现方法。如果目标DBMS提供有OUT参数的内嵌过程, 那么还必须提供java.sql.CallableStatement接口。每个数据库驱动程序必须提供一个java.sql.Driver类, 使得系统可以由java.sql.DriverManager来管理。

一个典型的驱动程序是在ODBC上提供对JDBC的实现接口, 从而提供与ODBC接口的JDBC-ODBC桥。由于JDBC放在ODBC之后, 所以实现起来简单而且高效。

2.2 JDBC驱动程序

JDBC驱动程序可以分为下面四种类型:

2.2.1 JDBC-ODBC桥驱动程序

Sun产品通过ODBC驱动程序提供JDBC的存取, 即经过ODBC驱动程序访问数据库。在大多数情况下, ODBC二进制代码必须在每个使用该数据库驱动程序的客户端安装, 所以这种驱动程序主要适用于公司内部网络, 或者在三层结构中用Java编写的应用服务器代码。

2.2.2 本机应用编程接口的Java驱动程序

此类驱动程序转换JDBC调用客户端的、针对特定数据库系统的API, 如Oracle、Sybase、Informix、DB2或其它的DBMS, 像桥驱动程序一样, 这种类型的驱动程序要求在每一个客户机上安装一些二进制代码。

2.2.3 数据库中间件的纯Java驱动程序

此类驱动程序将JDBC调用转换成为中间件供应商的协议, 然后通过中间件服务器转换成为DBMS协议。网络服务器中间件可以连接所有Java客户端到各种不同的数据库, 但是特定的协议取决于供应商。通常这种方式是JDBC最方便的选择, 提供商可为Internet用户提供产品套件。为了使这些产品能够支持Internet访问, 他们还必须处理安全、防火墙穿越等需求。各个提供商正在增加JDBC驱动程序到他们现存的中间件产品中。

2.2.4 直接连接数据库的纯Java驱动程序

这种驱动程序是本地协议的纯Java驱动程序, 它转换JDBC调用由DBMS直接使用的网络协议。这种方式允许从客户机到DBMS服务器的直接调用, 是Intranet访问的一种行之有效的解决方案。因为这些协议多数是专用的, 因此数据库提供商将成为这种驱动程序的主要来源。

3、Java性能测试及其相关分析

可以说, 保证Java软件质量最为有效方式就是对Java软件进行测试, 在进行测试的过程中, 要依据不同的测试目标, 明确地分为性能测试和功能测试两方面。在这里我们主要陈述Java软件的性能测试, 所谓性能测试, 简单来讲, 就是在软件运行时, 针对其所消耗的时间及其内存, 进行有效的测试。所以, 对来Java软件来讲, 如果其功能测试达标的话, 性能不能满足相关要求, 那么Java软件就是不合格的软件产品。

首先, Java软件测试平台。当前, Java软件测试工具已经逐渐趋于完善, 其中, 使用最为广泛的一个平台就是TPTP。在进行Java软件性能测试时, 通过软件测试平台所提供完善的性能测试功能, 实现软件代码, 基于开源、免费的框架基础上, 使其与其他软件进行融合, 突显出软件体系标准的灵活性与开放性, 其测试方法简单, 只需设定相应的测试时间和内存就可, 然后系统平台自动对Java软件进行性能测试。

其次, Java软件测试。实现智能设备的重要程序设计语言就是Java语言, Java语言在很大程度上满足了对程序运行效率和智能装备资源的高要求。并且, 在些基础上, 通过垃圾的回收机制, 对比和分析测试结果, 仔细分析Java程序设计的进行, 最终得出所要的结论, 然后通过一定的媒介, 进行输入、输出操作, 实现对动态内存资源的回收, 节省资源, 获得较高的执行效率。

4、Java软件的应用

目前, Java使用最多的Applet是Web文件的一个组成部分。其中有数据库存取的Ap p l et和能够使用JD BC来接触数据库的Applet。

首先Web浏览器从Web服务器中下载嵌有Applet的HTML页面, 解释并执行Applet字节码。当执行到有访问数据库的Java语句时, Applet直接将相应的Java命令发送给装在服务器上的JDBC。通过JDBC向后端数据库发出SQL请求, 然后数据库将处理结果通过JDBC直接返回给Applet。Applet通过JDBC访问数据库的方法是一种Web数据库访问的实现方案。

参考文献

[1]杨乔林.Java语言程序设计 (连载一) 第一篇Java导论[J].计算机系统应用, 1996年11期.

[2]贺斌.基于Java/Servlet/JDBC技术的电子商务的设计与实现[D].西北工业大学, 2001年.

数据库编程心得 篇2

大概你会问,数据库很多种,我该进修那种?我以为,SQL Server数据库是最基础一个,他使用面积相比普遍,再说,任何一个数据库核心都是一样,SQL掌握坚固,换成冗杂MySQL、Access根本不成标题,即使要用Oracle,也只需求和SQL相比稍微进修一下就足以!在中止对比进修时分,要先从基础末尾,比如数据类型、运算符号、关键字等等,然后降落到一些内置函数、逻辑编程、差错处置等等。这样一对比,对新学问掌握会又快又坚固。当然这些条件是你SQL大概数据库中任何一种掌握十分坚固,否则,进修再多再广也是云里雾里转悠,到头来一种也不能很好是使用。

下面说说做数据库管理和维护,数据库管理员是特地担任对管理数据库,他不只仅限于对数据保管备份,还触及到为使用次第提供可靠数据音讯。数据库管理员是后台最为次要角色,数据库安全性、可靠性都是特地次要,只需数据安全,才干为前台提供愈加优秀效力。作为一名数据库管理员,恳求标准远远高于数据库编程职员,由于管理员要同时具有编程职员素质和管理维护数据库技艺,数据库管理员手册中专业学问很多,还触及到一部分对数据剖析义务,这个对一个企业做出决策有着很次要,所以数据库管理员还要具有数据剖析才干和十分锋利洞察力,同时具有经历总结才干,一旦数据库发作十分和差错,能够依据学问和经历很好处置标题。

数据库应用编程 篇3

摘要:鉴于教学课时的限制以及教学手段的局限,数据库编程成为了数据库教学中的难点,特别是深入的编程教学受到了更大的考验。数据结构一般作为数据库的先导,是算法设计的基石,具有内容丰富、结构多变的特点,如若选作数据库编程的事例,不仅可以全面锻炼数据库编程经验技巧,也可加深对数据结构的理解。本文以数据结构中的“路口漫游”模型为例,借助SQLServer,阐述其数据库编程的实现过程。

关键字:数据库编程,数据结构,路口漫游

【中图分类号】S432.1

1.实例场景

在数据库编程教学中,为了更好的说明为何以及如何实现递归编程,我们引入了数据结构众多算法模型之一的路口漫游模型。同时,出于方便学生回忆和理解路口漫游模型的目的,引入模型应用的实际场景。例如,某市为了更好的发挥交巡警职能,需要在市区的一些交通要道和重要部位设置交巡警服务平台,但由于警务资源有限,需要根据城市的实际情况与需求合理地设置交巡警服务平台、分配各平台的管辖范围以及调度警务资源。具体需要解决的问题可能很多,下面暂列几个:

(1)根据市区交通网络和现有交巡警平台设置情况,为各交巡警服务平台分配辖区范围,保证辖区内若有突发事件时能在规定时间内到达事发地点。

(2)在最短时间内封锁全市出口的调配方案。

(3)分析全市交巡警平台的工作量和出警时长,拟合增加若干平台,以减轻部分平台的工作量,提高整体效率。

通过对上述问题的分析,我们可以看出存在一个基础的问题就是如何求出从一个或者一批路口出发,寻找在指定距离范围内的所有可达路口,同时保留其所经路径。此需求和数据結构中所提的路口漫游模型非常贴切,下面我们详细说明此模型以及如何通过数据库编程实现。

2.路口漫游模型

路口漫游是数据结构中常用的模型之一,在搜索优化类算法中应用广泛。模型以图论为基础,假设端点存在可进行自由漫游的人,以不重复、非环路为条件向外漫游指定的距离,搜索所有可能到达的路径。在具体的应用中,可以根据需求保留或者舍弃末段不完整路径。在下面的讨论中,由于未到达的路口不在辖区或者封锁范围内,我们舍弃了末端路径。对于路口漫游的算法步骤简述如下:

步骤1以指定的路口集C为中心,以特定的距离L为阈值。对路口集C中的任一路口ci,在关联ci的所有道路中任选一条加入漫游路径中,记录为

步骤2如若ci的漫游路径总长大于指定的阈值L,则从ci出发的向此方向的漫游结束;否则以rj的另一段,即非ci端继续向外漫游;

步骤3重复步骤2直至漫游路径长大于阈值L,并且保证漫游路径为简单路径,即无环不回溯,也就是新加入的路径及端点均不在已游历的路径中。依据实例的需要我们将舍弃不完整的末端路径。

3.数据库解决方案

3.1公用表达式(CTE)

通过上述的分析,自然的考虑运用递归的思路来解决此问题。在实际的数据库编程的教学中,以SQLServer为工具,有关递归编程应用较多的是公用表达式(CTE)。定义递归CTE的要点在于,依次定义定位点成员和递归成员,并以UNIONALL链接,通过递归成员的FROM子句中引用CTE本身来实现递归。一个简单的递归CTE可以形式化定义为,

WITH公共表达名(列名)AS{

定位点成员定义

UNIONALL

递归成员定义,其FROM子句将应用自身的公共表达式名}

递归CTE的执行简单说来是这样的,

(1)执行定位点成员生成第一个调用的基准结果集{T0};

(2)运行递归成员,以Ti作为输入,以Ti+1作为输出;

(3)重复(2)直至返回空集;

(4)最终结果为从T0一直UNIONALL到Tn的结果。

3.2路口漫游的实现

为了简化递归形式,交通路线相关信息汇总成中间表crossandroad_info中,包括路口[roadcross],与路口关联的所有道路[roadlist],关联道路号[road_num],道路长[correct_road_lenth],哪端[whichpoint],另一端路口号[theOtherpoint]等。依据路口漫游模型,SQLServer形式的递归代码部分如下:

withpossiblepathas(

selectroadcross,

cast(current_pathinfoasvarchar(max))ascurrent_pathinfo,

cast(current_corsslistasvarchar(max))ascurrent_corsslist,

current_end,correct_road_lenth,remain_lenthfrompossiblepath_basewhereremain_lenth>0

--以距离中心点阈值L为条件过滤漫游路径,以此作为递归调用基准集;

unionall

selecta.roadcross,

(a.current_pathinfo+'Cross'+cast(b.current_endasvarchar(10))+'~')ascurrent_pathinfo,

a.current_corsslist+cast(b.current_endasvarchar(10))+','ascurrent_corsslist,

b.current_endascurrent_end,b.correct_road_lenth,

a.remain_lenth-b.correct_road_lenthasremain_lenth

frompossiblepathasainnerjoinpossiblepath_baseasbona.current_end=b.roadcross

andcharindex(','+cast(b.current_endasvarchar(10))+',',a.current_corsslist)=0

wherea.remain_lenth-b.correct_road_lenth>0

--以上步探测的终点作为下步的起点,在确保简单路径(不重复非环)且不大于距离阈值L的条件下,逐步向外漫游,直至没有新的可选路口,即返回空集。

4.扩展

通过上述的分析与实践,我们成功的运用了数据库编程的核心思想“集合”的概念完成了数据结构中路口漫游的模型实现。由此,从一个新的角度实现算法的同时,锻炼了数据库的编程能力。实际上,基于集合的递归实现在数据结构中的应用不止于路口漫游,还有不少其他的算法也可通过上述方法加以实现,特别是以层次结构,树形结构为基础的算法中,具体地如生成表示嵌套集合关系的二进制排序路径,拓扑排序等。

当然,在数据结构的算法当中,某些算法并不合适使用那个数据库的语言来实现,例如需要逐条处理记录的情形。倘若硬性用标准的SQL语言来实现,不但代码冗长不易理解,效率也一般。

参考文献

[1]ItzikBen-Gan等著MicrosoftSQLServer2005技术内幕:T-SQL查询.电子工业出版社,2008.

[2]严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社,2007.

Java网络数据库编程及其应用 篇4

JDBC (Java Database Connectivity) 是Java实现数据库主要访问的API (Application Programming Interface) , 它与Microsoft的ODBC (Open Database Connectivity) 一样, JDBC主要是建立在X/Open SQLCLI (Call Level Interface) 等基础上的。JD-BC的主要是通过计算机管理存放在表中的数据, 因此定义了一系列与关系数据库, 如:数据库连接、SQL语句、结果集和元数据等, 在需要时进行交互的类和接口。

2 JDBC的主要接口和驱动程序

2.1 JDBC的主要接口

JDBC主要提供的有针对一般开发人员应用程序的JDBC API和底层的JDBC Driver API两种接口。

JDBC API它是一系列抽象的接口, 它的实现是由驱动程序开发商提供的。

JDBC中的驱动程序必须提供实现方法的接口。JDBC API被定义在java.sql包中, 其中定义了JDBC API用到的所有类、接口和方法, 主要的类和接口有:

(1) DriverManager类——处理驱动程序的装入, 为新的数据库连接提供支持。驱动程序要向该类注册后才能被使用。进行连接时, 该类根据JDBC URL选择匹配的驱动程序。

(2) java.sql.Driver接口——驱动程序接口, 负责确认URL与驱动程序的匹配、建立到数据库的连接等, 其中的方法需要有相应的驱动程序实现。

(3) java.sql.Connection接口——表示到特定数据库的连接, 其中的方法需要有相应的驱动程序实现。

(4) java.sql.Statement接口——为SQL语句提供一个容器, 包括执行SQL语句、取得查询结果等方法。

java.sql.ResultSet接口——提供对结果集进行处理的手段。

(5) JDBC Driver API是面向驱动程序开发商的接口。对于大多数数据库驱动程序来说, 仅仅实现JDBC API提供的抽象类就可以了。也就是说每一个驱动程序都必须提供对于java.sql.Connection、java.sql.Statement、java.sql.PreparedStatement和java.sql.ResultSet等主要接口的实现方法。如果目标DBMS提供有OUT参数的内嵌过程, 那么还必须提供java.sql.CallableStatement接口。每个数据库驱动程序必须提供一个java.sql.Driver类, 使得系统可以由java.sql.DriverManager来管理。一个典型的驱动程序是在ODBC上提供对JDBC的实现接口, 从而提供与ODBC接口的JDBC-ODBC桥。由于JDBC放在ODBC之后, 所以实现起来简单而且高效。

2.2 JDBC驱动程序

JDBC驱动程序可以分为下面四种类型:

(1) JDBC-ODBC桥驱动程序

Sun产品通过ODBC驱动程序提供JDBC的存取, 即经过ODBC驱动程序访问数据库。在大多数情况下, ODBC二进制代码必须在每个使用该数据库驱动程序的客户端安装, 所以这种驱动程序主要适用于公司内部网络, 或者在三层结构中用Java编写的应用服务器代码。

(2) 本机应用编程接口的Java驱动程序

此类驱动程序转换JDBC调用客户端的、针对特定数据库系统的API, 如Oracle、Sybase、Informix、DB2或其它的DBMS, 像桥驱动程序一样, 这种类型的驱动程序要求在每一个客户机上安装一些二进制代码。

(3) 数据库中间件的纯Java驱动程序

此类驱动程序将JDBC调用转换成为中间件供应商的协议, 然后通过中间件服务器转换成为DBMS协议。网络服务器中间件可以连接所有Java客户端到各种不同的数据库, 但是特定的协议取决于供应商。通常这种方式是JDBC最方便的选择, 提供商可为Internet用户提供产品套件。为了使这些产品能够支持Internet访问, 他们还必须处理安全、防火墙穿越等需求。各个提供商正在增加JDBC驱动程序到他们现存的中间件产品中。

(4) 直接连接数据库的纯Java驱动程序

这种驱动程序是本地协议的纯Java驱动程序, 它转换JDBC调用由DBMS直接使用的网络协议。这种方式允许从客户机到DBMS服务器的直接调用, 是Intranet访问的一种行之有效的解决方案。因为这些协议多数是专用的, 因此数据库提供商将成为这种驱动程序的主要来源。

3 JDBC使用方法

目前, Java使用最多的Applet是Web文件的一个组成部分。其中有数据库存取的Applet和能够使用JDBC来接触数据库的Applet。

首先Web浏览器从Web服务器中下载嵌有Applet的HTML页面, 解释并执行Applet字节码。当执行到有访问数据库的Java语句时, Applet直接将相应的Java命令发送给装在服务器上的JDBC。通过JDBC向后端数据库发出SQL请求, 然后数据库将处理结果通过JDBC直接返回给Applet。Applet通过JDBC访问数据库的方法是一种Web数据库访问的实现方案。

参考文献

数据库编程的求职信范文 篇5

您好!我叫,感谢您在百忙之中查看我的资料。我是新华学校的一名应届毕业生,在校期间,我勤奋努力学习,成绩优异,多次获学校学金,掌握了windows、c语言、pasca、,数据结构、数据库原理等专业基础知识。同时,通过大量的实际操作,我熟练掌握了dos,windows操作系统,并对unix有一定的了解,能够独立Word、Excel、Photoshop等应用等软件,有一定的语言编程基础,在经济信息及计算机应用专业通过三年的学习,我已具备了扎实的专业基础知识功底。

作为一名的学生,我认识到互联网将在未来经济中发挥巨大的作用,所以,业余时间我刻苦自学了很多网络知识。首先,在internet基础应用方面,比如浏览网页,搜索引擎的使用,网上查找,下载所需信息等都很熟练。而且,我还不满足于此,进一步学习了html语言,和,frontpage,dreamweaver等网页编辑软件,firework,flash等网页图形处理软件,可以自如的进行网页编辑。现在我在互联网上,就已经建立了自己的个人主页,并用文件传输协议(ftp)进行维护和。不断的努力使我的网站日趋成熟。

当然一个高素质除了掌握扎实的专业知识,还应该具有丰富的人文知识。我从小热爱文学,广览群书,为我的写作能力奠定了坚实的基础。读书以来,不断参加校内外征文活动,发表过作品数篇。特别在大学期间,被特邀为校报记者,参赛文章多次获得校园文学奖。.此外,在英语的学习方面,我已具备了一定的听,说,写和会话能力,可以用英语进行日常的交流。

未来社会需要的是理论和实践相结合的复合型。学习之余,我参加了大量的社会实践活动,做家教,去商场做过促销员,从而锻炼了自己吃苦耐劳,一丝不苟的工作做风.未来是一个充满挑战的世界,鲜花和荣誉只能代表过去。年轻的我希望公司给我展示自我的机会。没有您伯乐的眼光,对我来讲那是一种遗憾。因此,我非常希望能够成为贵公司的一员。我将以更大的热情和勤奋上进的工作态度投入到新的工作环境中去,为公司的发展添砖加瓦。

愿公司的明天更美好!

此致

数据库应用编程 篇6

关键词:突破难点 存储器分段 存储器访问

《微型计算机接口技术及应用》这门课程具有很强的理论性、实践性、应用性。它和工程实际有着紧密的联系,在工程实际中能够解决很多关键的难题。但是在实际教学这门课程的过程中,由于《微型计算机接口技术及应用》课程具有很多的难点,很多学生都无法真正的消化掉这些难点,不仅制约了编程应用,也无法提高学生的实际应用能力。

为了更好的为实际工程服务,及时的解决一些在实际的工程应用中会遇到的问题,应该掌握计算机控制技术理论知识,这是提高自身实践能力的基础和前提。因为只有把计算机控制技术理论掌握好,才有能力掌握和应用计算机,进而在工程应用出现问题时有能力解决那些问题。以下几个部分组成了微型计算机:

①中央处理器CPU。②存储器。③I/O接口电路。④I/O设备。

在学习《微型计算机接口技术及应用》这门课程的过程中,最大的难点就是存储器的组织和使用。在进行难点突破时,我们以存储器的分段为例,存储器是存储程序和数据的装置,属于计算机不可分缺的一个组成部分。计算机要想发挥自身的作用,存储器是必要部件,反之,计算机的存在就没有意义了。虽然微型计算机有很多类型,但是只要掌握其中的一种,其他的类型也都大同小异。因此我们在讲解存储器的使用方法时可以以8086/8088微型计算机系统为例。首先说明该计算机中央处理器CPU的结构及原理,然后学习该计算机系统的存储器组织。

1 存储器分段的原因

8086/8088CPU的20根地址总线决定了8086/8088系统的存储器容量,其存储器容量是1MB。但是该系统要想寻址1MB的内存空间,还存在着一些问题,因为该系统CPU内部的寄存器是16位的寄存器,这与20位地址的要求是冲突的。即16位寄存器装配不了20位的地址或数据,只能装配16位的地址或数据。要想解决这个问题,就需要装配20位的寄存器,但是由于客观原因所限,8086/

8088CPU无法装配20位的寄存器。为了有效的解决这个问题,8086/8088CPU的设计师,很巧妙的把1MB的内存进行分段,实现对全部内存的管理和使用。

2 实现分段管理的办法

8086/8088CPU内部提供了4个16位的段寄存器,分别是CS、DS、ES、SS;2个专用寄存器;8个16位的通用寄存器。

4个段寄存器的用途:

装配20位地址的高16位地址是4个段寄存器的作用,并且该地址能够被16整除。我们可以发现,这样的地址低4位都是0,也就是xxxx xxxx xxxx xxxx 0000的形式。如果20位地址是这样形式的,那么我们把这样的20位地址叫做段的地址起始,简称段地址。虽然段地址也是20位地址的,但是由于其低4位都是0,可以把都是0的这4位省略掉,保留高16位地址。如此一来,4个段寄存器中就可以装配段地址的高16位地址,那么16位段寄存器的要求也就得到了满足。

一般情况下,代码段寄存器CS装配的是某一程序代码的起始地址。数据段寄存器DS装配的是某一数据段的起始地址。附加数据段寄存器ES装配的是某一附加数据段的起始地址。堆栈段寄存器SS装配的是系统堆栈或用户设置的堆栈段的起始地址。

8个16位通用寄存器的用途:

装配16位数据是AX、BX、CX、DX四个寄存器的主要作用。装配16位偏移地址是BX、SI、DI、SP、BP这5个寄存器的主要作用。由于在8086/8088系统中,寄存器是16位的,而8086/8088却有20根地址线,8086/8088的寻址是通过段地址与偏移地址合成的,这样的话,如果用cs来指明段地址,用IP指出偏移地址,由于IP是16位的,它能表示的偏移地址只有0000H-FFFFH,也就是共64KB,而8086/8088地址线有20根,也就是可以寻址空间为1M,这样就需要通过分段管理,把内存地址分为若干段,每段有一些存储单元构成。用段地址指出是哪一段,偏移地址标明是段中的哪一个单元。每段最多为64KB,最小为16个字节,并且每段必须以16的倍数开始,也就是说每段的最后一位必须为0,如00000H,10000H,00010H等。逻辑地址是用户编程时使用的地址,分为段地址和偏移地址两部分。实行分段管理就是把段地址装配到相应段寄存器中,把偏移地址装配到地址寄存器中。如此一来,8086/8088CPU内部的寄存器都是16位的寄存器,所有矛盾都获得了解决。

3 地址转换方法

要想得到20位的实际地址(物理地址),程序地址(逻辑地址)利用以下公式就可以实现:

段地址×16d+偏移地址=物理地址(实际地址)

参考上述公式,利用CPU的地址加法器就可以把程序地址转换成物理地址。实际上是当你在编程时,写一条指令,例如:

MOV AL,DS:[2002H]

已知DS的值,比如:5678H,那么56780H就是数据段的起始地址,并且在指令中偏移地址已经给出就是2002H。数据在内存的物理地址是:56780H+2002H=

58782H。

通过指令译码器把指令译码后,发出一系列控制信号,把数据段空间偏移地址为2002H单元中数据传送给AL寄存器。实际上,源操作数程序地址已经被地址加法器转换成物理地址58782H,之后20位地址信息被发出,这20位地址信息就是所对应的数据内存单元地址58782H,把内存单元地址58782H中存放的数据传送给寄存器AL。完成了这一条指令的操作。

4 4个段寄存器CS、DS、ES、SS和几个通用寄存器及专用寄存器的默认搭配关系

①CS与IP搭配,用于程序代码段空间的访问。

②DS与BX、SI、DI搭配,用于数据段空间的访问。

③ES与DI搭配,用于附加数据段空间的访问。

④SS与BP、SP搭配,用于堆栈段空间的访问。

5 存储器的寻址方式

以上已经学习了存储器的组织和存储器分段问题,之后应该学习存储器的寻址方式这个问题。如果学生已经真正掌握了存储器的分段问题,那么学习存储器的寻址方式这个问题就简单多了。比如,指令

MOV BX,3002H

MOV AX,DS:[BX]

对于第二条指令的功能就能真正理解,从而从实质上进行掌握。她的意思是:源操作数在内存数据段中存放,数据段的段地址在寄存器DS中存放,相对于数据段的起始地址,偏移地址是3002H单元,这个地址在寄存器BX中存放。因此,叫做寄存器间接寻址。在这个单元中存放的数据要传送给寄存器AX。因为,存储器的分段问题的难点已经掌握,所以对存储器的寻址方式也很容易掌握了。

6 指令的功能和用途

在学习了存储器的分段方法和对存储器的访问方法之后,应该学习指令的功能和用途,只有这样才能使其真正的发挥作用,达到预期的目的和应用效果。

7 提高编程能力和应用能力

如果能够突破存储器的分段问题的难点,那么正确使用内存资源在编程的过程中就简单多了。由于数据都是在数据段中,并且都是存放在内存中。因此很多在实际的工程当中遇到的问题也就迎刃而解了,比如如何存放采集到的大量数据;一旦一个数据段不够用,存放时是否应多安排几个数据段等。

例如,模/数、数/模转换问题:声音数据采集,录音和播放声音实际工程应用问题。通过对内存的有效安排,将采集的数据分别存放在内存的不同数据段区域。为数据的管理提供了方便,也提高了效率。

通过对实际应用工程的编程实践,学生感受到现代科技的力量和作用及其价值,自己动手设计编程,获得成果,兴趣大增。编程应用能力和应用水平显然得到了很大提高。

参考文献:

[1]李继灿.新编16/32位微型计算机原理及应用(第二版)[M].北京:清华大学出版社,2001

[2]沈美明,温冬婵.IBM-PC 汇编语言程序设计(第二版)[M].北京:清华大学出版社,2001.

[3]李晖,张世彤.如何在计算机教学中培养学生的编程能力[J]. 辽宁教育行政学院学报,2008(12).

数据库应用编程 篇7

社会正趋于现代化、信息化, 诸如C、JAVA等计算机编程语言繁多, 在程序开发中可能会运用到多种语言, 而运用多语言开发软件, 会面临程序连接和数据交换等难题。虽然开发与数据库相关的程序, 能利用编程语言把数据库文件转录成文本文件, 继而与编程语言进行数据交换以实现程序与数据库间的数据交换, 但它会给软件开发者带来不便。对此, 诸如ODBC、DAO等数据库编程接口孕育而生, 它能为数据资源提供接口以准许用户的程序实现多数据库连接, ODBC能实现最基本的ASCII文本到繁杂的主框架数据库等进行数据连接, 利用SQL查询语句, 访问其所能支持的所有数据资源, 轻松实现数据库与应用程序间的数据交换。

VC++作为适用的开发工具, 能提供齐全的类库和友好的交互界面, 能满足不同编程人员所需, 能使用ODBC API或利用MFC中的ODBC类实现数据库编程。但在用ODBC API进行编程, 过程中产生大量的代码, 若使用VC++类中封装好的ODBC API, 能更简便地进行应用编程。本文将浅析ODBC数据库接口及其VC++6.0应用程序的设计。

2 ODBC

ODBC (开放数据库互连) 是微软公司提出的数据库访问应用程序接口标准, 其定义了访问数据库API的规范, 因此关系数据库均提供了ODBC驱动程序。ODBC是基于动态链接库 (DLL) 的独特结构, 它能让程序模块化。运用ODBC32.DLL定义程序接口, 在运行程序时O D B C 3 2.D L L在由W I N D O W S控制面板中O D B C管理模块维护的ODBC32.INI注册表基础上, 明确并跟踪相关可用的数据库DLL, 这也就使得单个应用程序实现多DBMS的数据访问。基于C/S结构ODBC结构是由应用程序 (Application) 、驱动程序管理器 (Driver Manager) 、驱动程序 (Driver) 以及数据源 (Data Source) 组成。

2.1 应用程序

应用程序能实现用户和接口间进行交互, 并调用ODBC函数给出SQL请求以提取结果作出错误处理, 它藉ODBC界面执行以下工作: (1) 请求与数据源进行连接或交互; (2) 将SQL请求发送到数据源; (3) 定义存储区域和数据格式为S Q L请求的结果; (4) 请求并处理错误; (5) 必要时, 进行结果报告; (6) 为交互控制提交请求或回滚操作; (7) 结束与数据源的连接。

2.2 驱动程序管理器

驱动程序管理器能通过调用函数并使用DLL, 实现应用程序所需驱动的加载和调用, 使其连接到数据源, 它能管理多个应用和驱动程序。它处于“.DLL”文件中, 它除了装载驱动程序其主要工作: (1) 使用ODBC INI文件将数据源映射到特定的Driver DLL; (2) 服务初始化并调用ODBC; (3) 提供ODBC函数入口指针给每个驱动程序; (4) 为O D B C调用提供参数和序列验证。

2.3 驱动程序

驱动程序也处在.D L L文件中, 它执行O D B C的函数调用, 将SQL请求相应的数据源结果传递给应用程序。其工作如下: (1) 建立与数据源的连接; (2) 提交SQL请求给数据源; (3) 翻译请求的数据格式; (4) 将结果传递给应用程序; (5) 将错误格式转换为错误代码并返给应用程序; (6) 必要时, 申明和操纵游标; (7) 若数据源需要ODBC初始化, 则初始化O D B C。

2.4 数据源

数据集及其关联环境构成数据源, 它包括了操作系统、数据库系统 (DBMS) 以及网络。应用程序无须制定特定的数据库系统, 只要利用标准API就能连接数据源。

3 MFC的ODBC类

M F C O D B C类具有功能齐全、简便易懂等特点, 在实际开发中应用范围最广。在MFC 1.5以后的版本中, 相关ODBC功能的类都封装在MFC ODBC类中, 通过它们与ODBC接口, 能使用户避免ODBC API的繁琐处理, 直接进行数据库的相关操作。MFC ODBC类包括有C D a t a b a s e、C R e c o r d s e t、C R e c o r d V i e w以及CField Exchange等类。

4 VC++应用程序设计

4.1 程序结构

本文将设计员工工资管理系统, 运用VF 6.0数据库接口以及VC++实现数据的增删改以及计算等功能, 计算是将基本工资与奖金的数据相加。VF数据库名lyl包括有staff表, 其中包含有员工号 (staff_id) ;员工名 (staff_name) ;工资 (basewage) ;奖金 (bonus) ;总计 (totals) 。

4.2 程序源码

限于篇幅, 如下是增添员工部分代码:

5 结语

通过数据库编程接口能有效地避免应用程序与数据库间进行数据交换的大量编码, 在满足程序需求的情况下, 能让用户得到更好地效率及应用。综上所述, 在VC++设计应用程序时, 运用数据库接口进行编程是可行的, 它能使编程变得更为简便。

参考文献

[1]廖远来.数据库编程接口及其VC++应用程序设计[J].电脑与电信, 2007, 05:63-65+68.

[2]李健平, 戴子文, 王雪力, 刘芳.基于ODBC的Visual C++应用程序设计[J].甘肃科技纵横, 2011, 02:23-24+188.

[3]高铁军.VC 4.1数据库接口及其数据库功能的实现[J].黄金学报, 1999, 02:138-141.

数据库应用编程 篇8

1 SQLite数据库

SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎。它是完全独立的,不具有外部依赖性,非常健壮,可以在所有主要的操作系统上运行,并支持大多数计算机程序开发语言。具有如下技术特点[1,2]:

版权允许无任何限制的应用。

支持ACID事务。

实现零配置,即无需安装和管理配置。

实现了绝大部分SQL92标准。

数据库存储在单一、跨平台、完整的磁盘文件中,数据库文件可以在不同字节顺序的机器间自由地共享。

代码量小,大致3万行C代码,小于250KB的代码空间。

比目前流行的大多数数据库运行速度快。

跨平台,它能够支持Windows/Linux/Unix等主流的操作系统。

比较完善的数据库恢复策略,即使在系统崩溃和掉电以后也可以自动完成启动、初始化和数据恢复。

可见,SQLite数据库特别适合应用于嵌入式产品。

2 Qt数据库编程

Qt4为数据库访问提供的Qt SQL模块实现了数据库与Qt应用程序的无缝集成,同时为开发人员提供了一套与平台和具体数据库均无关的调用接口,Qt SQL模块由3部分组成[3]:

(1)驱动层:实现了数据库与SQL接口的底层桥接,包括支持的类有:QSql Driver,QSql Driver Creator,QSql Driver Creator Base,QSql Driver Plugin和QSql Record。

(2)SQL接口层(应用编程层):提供了数据库访问类。数据库连接由QSQLDatabase类提供;QSql Query类提供了与数据库的交互操作;其他类还包括:QSql Error,QSql Field,QSql Table Model和QSql Record。

(3)用户接口层:提供从数据库到数据表示窗体的映射,包括的支持类有:QSql Query Model,QSql Table Model和QSqlRelational Table Model。这些类均以Qt的模型/视图结构设计。

Qt使用驱动程序与各种数据库的应用编程接口进行通信,所有数据库相关的代码均包含在驱动插件中。目前,Qt支持的数据库驱动插件有Oracle,My SQL,IBM DB2,Postgre SQL,Sybase SQL,SQLite等[4]。Qt Sql模块为访问数据库提供了QSql Query类,可直接执行底层数据库支持的SQL语句并处理返回结果;还提供了SQL模型类,是访问数据库的高层类。

3 Qt中SQLite数据库应用编程

3.1 创建数据库文件

SQLite数据库文件的创建有两种方式:其一,使用SQLite专用数据库管理命令创建数据库文件,该命令工具还集成了SQLite数据库管理功能;其二,在Qt编程中SQLite数据库连接时,当数据库文件不存在时即自动创建。

从网站http://www.sqlite.org/下载最新源码包,以普通用户在Linux命令终端下解压生成Sqlite目录,进入Sqlite目录并执行./configure生成Makefile文件,接着执行make开始编译,最后切换到超级用户模式下执行make install安装数据库管理命令及SQLite开发所需头文件,完成后,执行Sqlite3 contact.db,创建一个名为contact.db的SQLite数据库文件作讲解之用。

3.2 数据库连接

操作数据库时,应先建立数据库的连接,通常,在应用程序开始的时候调用单独的函数连接数据库:

{

//指明数据库驱动类型

//设置数据库文件名,在上一步已创建

return false;//打开失败return true;//执行成功}

}

首先,调用QSql Database::add Database()创建QSqlDatabase对象并指明数据库驱动类型;接着,设置所连接的数据库文件名为contact.db,若数据库文件名设置为“:memory:”,则表示在程序进程地址空间创建一个SQLite数据库;接着,调用open()函数建立数据库连接,成功则返回true;失败则返回false,若事先未创建数据库文件则在程序运行时自动生成。关闭数据库连接时调用close()函数。

3.3 执行SQL语句

一旦建立了数据库连接,就可以使用QSql Query类执行底层数据库支持的SQL语句。只需创建一个QSql Query对象,然后调用QSql Query::exec()函数就可以向数据库提交标准的SQL语句:

QSql Query query;

CHAR(20),tel VARCHAR(13))”);

Sang’,‘13555555555’)”);

Si’,‘13888888888’)”);

Wu’,‘1399999999’)”);

创建一个了QSql Query对象query并调用exec()函数执行SQL语句,建立phonebook电话簿数据表(含有姓名name,电话号码tel两个字段),向表中插入3条记录。

查询数据表时先调用exec()函数执行SQL语句,再调用next()遍历查询结果:

//取出姓名字段

//取出电话号码字段

q Dbug()<

}

只要调用next()一次,就可以将QSql Query定位到结果集中的第一条记录,随后每次调用next()都会把记录指针前移一条记录直到结尾时,next()才返回false,如果结果集为空(查询失败),那么next()第一次调用将返回false。

执行其他常用SQL语句的方法类似。

3.4 使用SQL模型类

SQL模型类是Qt提供的数据库访问高层类,使用SQL模型类访问数据库无须使用SQL语句即可对数据库操作,并且可以很容易地将结果以表格表示出来。下面是QSql Table Model类执行Select操作示例:

QSql Table Model model;

//创建QSql Table Model模型类对象

model.set Table(“phonebook”);//设置要操作的数据表名

model.set Filter(“tel=13888888888”);//设置查询条件

model.select();//执行查询

以上操作等价于“SELECT*FROM phonebook WHERE tel=13888888888”,创建一个基于SQL模型类的视图就能将查询的数据输出:

QTable View view;//创建QTable View类视图对象

view.set Model(model);//将model作为数据源

view.show();//视图显示

3.5 工程编译

在Qt中使用Qt Sql模块需对工程进行配置:在相应的头文件列表中加入#include;执行qmake project生成工程文件.pro并编辑该文件,在相应位置加入QT+=sql。之后,再执行qmake生成Makefile文件,接着执行make编译工程,最后完成应用程序的调试及运行。

4 结语

SQLite是免费使用的优秀的开源嵌入式数据库,体积小、速度快、使用简单、性能可靠。Qt中对SQLite数据库的访问编程操作简单、方便灵活。利用Qt与SQLite数据库构建嵌入式数据库应用程序,是一种经济又高效的解决方案。

参考文献

[1]Features Of SQLite[EB/OL].http://www.sqlite.org/features.html.

[2]胡伟.SQLite在嵌入式系统上的实现研究[J].计算机与数字工程,2009,37(2):58-162.

[3]丁松林,黄丽琴.Qt图形设计与嵌入式开发[M].北京:人民邮电出版社,2009.

数据库应用编程 篇9

1.1 基本概念

SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射 (ORM) 工具, 使用MIT许可证发行。

SQLAlchemy“采用简单的Python语言 , 为高效和高性能的数据库 访问设计 , 实现了完 整的企业 级持久模 型”。SQLAlchemy的理念是 , SQL数据库的量级和性能重要于对象集合; 而对象集合的抽象又重要于表和行。因此, SQLAlch-mey采用了类似于Java里Hibernate的数据映射模型 , 而不是其他ORM框架采用的Active Record模型。SQLAlchemy把数据库当作是一个关系型代数引擎, 不只是数据表的一个集合。数据行不仅可以从数据表中查询出来, 也可以从数据表关联后成形成的逻辑数据表和其他的查询语句结果中进行查询;这些元素可以组合形成更大的数据结构。SQLAlchemy的表达式语言就是建立在这个核心概念之上的。

1.2 优势

(1) SQLAlchemy组件中最有名的是它的对象关系映射器 (ORM) , 是一个提供数据映射器模式的可选组件 , 利用这个组件, 类可以以开放式的多种方式映射到数据库上, 允许对象模型的设计和数据库架构的设计, 一开始就以分离方式进行各自的开发

(2) 强大灵活的API, 写复杂查询变得简单

(3) 支持众多数据库 , 换数据库不用修改上层应用代码

SQLAlchemy兼容众多数据库 (如SQLite、My SQL、Post-gres、Oracle、MS-SQL、SQLServer) 。

2 Python 中使用 SQLAlchemy 的步骤

2.1 安装

2.2使用

(1) 定义元信息 , 绑定到引擎

(2) 创建表格 , 初始化数据库

执行上述代码, 创建一个users表, 有id, name, email 3个字段。

(3) 基本操作 , 插入

(4) 查询

(5) 使用ORM

2.3实例

3 结语

数据库应用编程 篇10

自动售检票系统(automatic fare collection,AFC),是基于计算机、通信、网络、自动控制等技术,实现轨道交通售票、检票、计费、收费、统计、清分、管理等全过程的自动化系统。未来20年将是我国城市轨道交通发展的关键时期,地铁中的自动售票机需求也将随之增加。如果过度采用国外先进装备和先进技术,势必造成投资成本增加,所以,国家计委提出轨道交通设备平均70%以上国产化的要求。这无疑对AFC系统的国产化提出了相应的要求。本文主要研究ADO(active data objects,ADO)数据库编程在地铁车站监控系统中的应用。地铁车站监控系统作为自动售票机设备的核心管理部件,是轨道交通自动售票系统的重要组成部分。地铁车站监控系统的设计与实现有利于提高我国企业在此领域的竞争力,利于节约国家对轨道交通的投资成本,对于实现AFC关键技术的国产化意义重大,应用前景广阔。

1 地铁车站监控系统

城市轨道交通自动售检票系统(AFC)的结构共分为5个层次,分别为车票、车站终端设备、车站计算机系统、线路中央计算机系统、清分系统。其中车站监控系统是承上启下的部分。地铁车站监控系统采用C/S架构。通过C/S架构可以充分利用两端硬件环境的优势,将任务合理分配到Client(客户端)端和Server(服务器端)端来实现,降低了系统的通讯开销。地铁车站监控系统基于C++,结合软件设计、数据库和通信等技术,完成地铁车站计算机与自动售票机,闸机等设备的通讯设计与实现,其主要功能包括[1]:

1)对车站设备(自动售票机,闸机等)的操作控制,包括关闭、开启及设置工作模式等。

2)监视车站设备运行状态。

3)采集、保存相关信息。

4)提供车站一级的票务统计,能以要求的格式和内容进行车站报表打印。

5)自动完成与中央计算机及各终端设备的时钟同步。

6)与中央计算机实时通信,实时中央数据下载、下发和车站数据上传。

2 ADO数据库编程

地铁车站监控系统在运营过程中所产生的各种类型数据均需要妥善的记录、存档。以便在维护、统计过程中有充分的依据。所以选用安全、稳定、高效运行的数据库编程方式势在必行。

ADO是目前在windows环境中比较流行的客户端上的编程技术,是建立在OLE DB(object link and embed data base)底层技术上的高级编程接口,具有强大的数据处理功能(处理各种不同类型的数据源、分布式的数据处理等等)和极其简单、易用的编程接口,因而得到了广泛的应用。用户能够编写应用程序以OLE DB提供者访问和操作数据库服务器中的数据。其优点在于使用简洁、速度快、内存支出少和磁盘遗迹小[2]。

数据库在监控系统中的运用目的是,以C++为编码语言利用ADO数据库编程将数据库联入系统中。SQL server数据库具有稳定性、安全性,高速性等优势,适合在地铁车站监控系统中使用。

C++中利用ADO对象对数据库的访问主要有两种形式:Active X控件和ADO对象。在地铁车站监控系统中适宜选用可复制性、灵活性更高的ADO对象形式对数据库进行访问操作。只要将ADO对象封装到类中、结合SQL语言设计就可以很好地对数据库进行操作[3]。ADO对象主要包括7个对象,如表1所示。

在地铁车站监控系统中主要是应用ADO连接对象Connection和记录对象Recordset[4]。以下将着重介绍ADO数据库编程的应用。

3 ADO数据库编程在地铁车站监控系统中的应用

3.1 用ADO对象Connection连接数据库

以位于地铁车站服务器端的SQL server2005数据库sa为例,介绍用ADO对象连接的具体方法。

在ADO数据库编程中Connection对象用于创建一个到达某个数据源的开放连接。通过此连接,就可以对一个数据库进行访问和操作。

在地铁车站监控系统中使用Connection,首先必须要引用相应的类型库。由于地铁车站计算机端是基于C++中的MFC(microsoft foundation classes)程序的系统,在其中的Std Afx.h头文件中添加如下语句:

引用ADO文件的路径在不同的情况下需要修改。注意#import预处理指令不能放在Std Afx.h文件的开头,而应该放在所有include指令的后面。否则在编译时会出错。程序在编译过程中,C++会读出msado15.dll中的类型库信息,自动产生2个该类型库的头文件和实现文件masdo15.tih和msado15.tli(在Debug或Release目录下)。在这2个文件里定义了ADO的所有对象,以及一些枚举类的常量等,程序只需直接调用这些方法就可[5]。同时必须注意,ADO库是一组COM动态库,应用程序在调用ADO前,必须ADO初始化OLE/COM库环境。在MFC应用程序里,比较好的方法是在应用程序主类的Init Instance成员函数里初始化OLE/COM库环境:Afx Ole Init()或:Co Initialize(NULL)。在初始化完成之后需要在地铁车站监控系统头文件中定义ADO连接对象指针:

最初的准备完成后利用连接字符串连接到数据库。连接到数据库sa的字符串代码如下:

为了调试方便,上述代码中的Server也可直接换成IP地址,在此次连接位于本机,可用回路IP(127.0.0.1)。database为需要连接到的数据库的名称,在Persist Security Info属性的意思是表示是否保存安全信息,可以理解为"ADO在数据库连接成功后是否保存密码信息",True表示保存,False表示不保存;PWD为数据库用户sa在登录到SQL server数据库时的验证密码,确保数据的安全性。如果用户不知道连接字符串如何设置,可以通过CAdodc控件设置数据源,然后可在Use Connection String编辑框中找到连接字符串;除了这种方法以外,还可以在桌面上创建一个文本文件,然后将其扩展名改为“.udl”,双击该文件,也可以弹出“数据连接属性”对话框。在该对话框中设置连接的数据库,然后用记事本打开该文件,也可以获得连接字符串[6]。

3.2 用ADO对象Recordset操作数据库

完成数据库的连接之后就可以很方便地利用ADO对象对数据库进行操作,ADO记录集对象(Recordset)可操作来自数据源(sa数据库)的数据,Recordset对象几乎可以对所有的数据进行操作。所有的Recordset对象均使用记录(行)和字段(列)进行构造[7]。同Connection对象一样,应当先在地铁车站监控系统头文件中定义ADO记录指针:

利用Recordset对象创建、操作数据表可以在地铁车站监控系统运行的过程中对所产生的各种类型的数据进行有效地归类、管理。Recordset对象的常用方法如表2所示。

在地铁车站监控系统中,主要运用Open方法和Update命令完成对数据库数据的操作。

1)利用ADO对象Recordset创建数据表

地铁车站监控系统需要创建的数据表,主要包括:自动售票机的票务、票款数据表,闸机的票务数据表,自动售票机、闸机的运营命令日记表、状态显示表以及参数数据表等。各表之间存在一定的联系关系,可通过代码对MFC控件与数据表的关系进行关联。以创建自动售票机运营命令日记表为例:

Open语法中的参数说明如表3[8]。

对于创建的自动售票机命令日志表可在本机SQL数据库sa中找到。

2)利用ADO对象Recordset实时操作数据表

在创建好数据表以后,根据不同的运营命令,就可对表中的各种数据进行管理,以TVM交易数据表为例来说明。

自动售票机运营命令日记表的主要作用是记录下监控系统服务器端对各个自动售票机运营过程中所下达命令的记录。为日后研究整个系统的运营寿命等提供参考的依据。在本例中,在服务器端程序通过MFC控件对自动售票机发出命令的同时触发命令日记表的相应函数,从而通过Recordset执行对表的实时更新。

代码如下:

触发此次运行的条件主要包括:只收硬币、只收纸币、均收、停止运营、开始运营、暂停运营等。以上代码是在触发条件是只收硬币的条件下运用插入的方法向编号为10的自动售票机中添加发出命令的当前系统时间、命令内容,以及机器的编号,虽然这种方式在大型系统中会使系统的代码量偏大,但是也使系统更加地稳定,不易出现系统崩溃等情况。

4 结语

本文有针对性地介绍了地铁车站监控系统中对ADO数据库编程的运用并满足了系统的功能要求。本文的核心是利用了ADO数据库编程的优点,在以C++为开发工具的车站监控系统中便捷地连接数据库,对运营所产生的数据有效地整合、处理。对数据库高效地操作有利于提高整个系统的效率,且整个系统的可维护性、可扩展性和可靠性也大大提高。

在软件测试中,只单独测试了自动售票机售票模块,并没有与其他模块协同测试,减轻了工控机和整个监控系统系统的负担,但降低了测试的准确性。因此,接下来的研究工作就是将监控的各个模块融合到整个AFC系统中,进行全面测试与分析。

参考文献

[1]袁洋.地铁终端设备监控系统的设计与实现[D].南京:南京理工大学硕士学位论文,2013,1.

[2]David Sceppa,ADO编程技术[M].北京:清华大学出版社,2001:387-420.

[3]启明工作室.Visual C+++SQL Server数据库应用实例完全解析[M].北京:人民邮电出版社,2006:315-321.

[4]唐宏.使用VC++及ADO进行数据库编程[J].计算机软件及计算机应用,2007(05):64-65.

[5]吴桂珠.使用ADO技术实现VC++与Oracle数据库的连接[J].SCIENCE科技信息,2006,04(20):57-59.

[6]宋坤.Visual C++开发实战宝典[M].北京:清华大学出版社,2010:511-529.

[7]David Sceppa.ADO编程技术[M].北京:清华大学出版社,2001:756-765.

上一篇:开发力度下一篇:施工技术与设计配合