排队系统的仿真与应用读书报告.doc_第1页
排队系统的仿真与应用读书报告.doc_第2页
排队系统的仿真与应用读书报告.doc_第3页
排队系统的仿真与应用读书报告.doc_第4页
排队系统的仿真与应用读书报告.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1读书报告基于VisualC+6.0的数据库的连接与操作计算机0101班12号须明烽为按时保质保量地完成本次毕业设计,我进行了充分的准备。因为用VisualC+6.0开发系统相对较难,具有挑战性,所以选择VC作为本次毕业设计的开发环境。在选定开发环境为VC以后,我到图书馆借阅了相关技术书籍,主要有设计模式、MFC深入浅出、MFC开发人员指南、VisualC+图形用户界面开发指南、VC+编程技术与难点剖析、VisualC+实效编程百例、VisualC+6.0高级编程范例、VisualC+技术内幕、VisualC+数据库开发基础及实例解析、VisualC+6.0数据库开发实例、VisualC+6.0数据库系统开发实例导航等。此外,我还借阅了有关排队系统的书籍,像建模与仿真、预测与决策技术等。在此之前我已经进行了VC在API编程方面的研究,为MFC编程打下了基础。根据毕业设计的具体要求,我着重在VC数据库开发谈一下我的所学所想看法及其感受。信息管理系统(ManagementInformationSystem,MIS)通常是自有任何计算机设备或其它信息处理技术组成并用于管理信息的系统。所有的信息管理系统中待处理的信息均是来自第一手的原始资料,通常来源分散、数据量庞大、而且多有时间局限性。信息管理系统的重要作用之一,是对信息进行管理并在此基础上为使用者提供各种形式的帮助。对信息的管理通常由信息的采集、信息的传输、信息的存储、信息的加工、信息的维护和使用五个方面组成。管理信息的各个组成部分如果按一定的规则相互联系、相互作用并形成具有一定功能的整体,就构成了信息管理系统。一个数据库应用程序在逻辑上通常由数据访问链路和用户界面两部分组成。在设计数据库应用程序的时候,通常要把数据访问链路构件和用户界面构件分开,数据访问构件均放置在数据模块上。数据模块主要用来实现数据访问链路,也就是引入数据集。其体系结构模型如图所示:常用的数据库开发技术有ODBC(OpenDatabaseConnectivity,开放数据库互连)、DAO(DataAccessObject,数据访问对象)、OLEDB(ObjectLinkandEmbeddingDatabase,对象连接与嵌入数据库)和ADO(ActiveXDataObject,ActiveX数据对象)等几种。(1)ODBC是一种使用SQL的程序设计接口。使用ODBC让应用程序的编写者避免了与数据源相联的复杂性。这项技术目前已经得到了大多数DBMS厂商们的广泛支持。MicrosoftDeveloperStudio为大多数标准的数据库格式提供了32位ODBC驱动器。这些标准数据格式包括有:SQLServer、Access、Paradox、dBase、FoxPro、Excel、Oracle以及MicrosoftText。如果用窗体数据模块数据库引擎客户数据集数据源用户界面数据库2户希望使用其他数据格式,用户需要相应的ODBC驱动器及DBMS。用户使用自己的DBMS数据库管理功能生成新的数据库模式后,就可以使用ODBC来登录数据源。对用户的应用程序来说,只要安装有驱动程序,就能注册很多不同的数据库。登录数据库的具体操作参见有关ODBC的联机帮助。(2)ADO是Microsoft为最新和最强大的数据访问范例OLEDB而设计的,是一个便于使用的应用程序层接口。ADO使您能够编写应用程序以通过OLE.DB提供者访问和操作数据库服务器中的数据。ADO最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。ADO在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接口。之所以称为ADO,是用了一个比较熟悉的暗喻,OLE自动化接口。(3)OLEDB是一组”组件对象模型”(COM)接口,是新的数据库低层接口,它封装了ODBC的功能,并以统一的方式访问存储在不同信息源中的数据。OLEDB是MicrosoftUDA(UniversalDataAccess)策略的技术基础。OLEDB为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。也就是说,OLEDB并不局限于ISAM、Jet甚至关系数据源,它能够处理任何类型的数据,而不考虑它们的格式和存储方法。在实际应用中,这种多样性意味着可以访问驻留在Excel电子数据表、文本文件、电子邮件/目录服务甚至邮件服务器,诸如MicrosoftExchange中的数据。但是,OLEDB应用程序编程接口的目的是为各种应用程序提供最佳的功能,它并不符合简单化的要求。您需要的API应该是一座连接应用程序和OLEDB的桥梁,这就是ActiveXDataObjects(ADO)。(4)DAO是基于MicrosoftJet数据库引擎的一种重要的数据库访问技术。DAO是一种面向对象的界面接口,但非可视化的对象要通过编码来完成。DAO是设计关系型数据库系统结构的对象类的集合,提供了完成管理这样一个系统所需的全部操作的属性与方法,包括创建数据库、定仪表、字段和索引、简历表之间的关系、定位和查询数据库等工具。MFC提供的DAO类可以通过MicrosoftJet数据库引擎访问数据库中的数据及数据库的结构定义。DAO类具备ODBC类的大部分功能并增加了许多自己的功能。与ODBC类的CDatabase、CRecordset、CRecordView类似,MFC为DAO也提供了相应的CDaoDatabase、CDaoRecordset和CDaoRecordView类,分别封装了DAO数据库对象、DAO记录集对象和DAO记录视对象。此外,DAO还提供有封装DAO工作区对象、表定义对象和查询定义对象的CDaoWorkspace、CDaoTableDef和CDaoQueryDef等DAO类。下面以MFCODBC类来讲述如何实现VC+与数据库的连接:应用VisualC+的AppWizard可以自动生成一个ODBC应用程序框架。方法是:打开File菜单的New选项,选取Projects,填入工程名,选择MFCAppWizard(exe),然后按AppWizard的提示进行操作。当AppWizard询问是否包含数据库支持时,如果你想读写数据库,那么选定Databaseviewwithfilesupport;而如果你想访问数据库的信息而不想回写所做的改变,那么选定Databaseviewwithoutfilesupport选项就比较合适了。选择了数据库支持之后DatabaseSource按钮会激活,选中它去调用DataOptions对话框。在DatabaseOptions对话框中会显示已向ODBC注册的数据库资源,选定你所要操作的数据库,如:Super_ES,单击OK后会出现SelectDatabaseTables对话框,其中列举了你所选中的数据库中包含的全部表,选择你希望操作的表后,单击OK。在选定了数据库和数据表之后,你可以按照惯例继续进行AppWizard操作。3-特别需要指出的是:在生成的应用程序框架View类(如:CSuper_ESView)中包含一个指向CSuper_ESSet对象的指针m_pSet,该指针由AppWizard建立,目的是在视表单和记录集之间建立联系,使得记录集中的查询结果能够很容易地在视表单上显示出来。有关m_pSet的详细用法可以参见VisualC+OnlineBook。-程序与数据语言建立联系,使用CDatebase:OpenEx()或CDatabase:Open()函数来进行初始化。数据库对象必须在你使用它构造一个记录集对象之前被初始化。-下面举例说明在VisualC+环境中ODBC的编程技巧:-1查询记录-查询记录使用CRecordSet:Open()和CRecordSet:Requery()成员函数。在使用CRecordSet类对象之前,必须使用CRecordSet:Open()函数来获得有效的记录集。一旦已经使用过CRecordSet:Open()函数,再次查询时就可以应用CRecordSet:Requery()函数。在调用CRecordSet:Open()函数时,如果已经将一个已经打开的CDatabase对象指针传给CRecordSet类对象的m_pDatabase成员变量,则使用该数据库对象建立ODBC连接;否则如果m_pDatabase为空指针,就新建一个CDatabase类对象并使其与缺省的数据源相连,然后进行CRecordSet类对象的初始化。缺省数据源由GetDefaultConnect()函数获得。你也可以提供你所需要的SQL语句,并以它来调用CRecordSet:Open()函数,例如:Super_ESSet.Open(AFX_DATABASE_USE_DEFAULT,strSQL);-如果没有指定参数,程序则使用缺省的SQL语句,即对在GetDefaultSQL()函数中指定的SQL语句进行操作:CStringCSuper_ESSet:GetDefaultSQL()return_T(BasicData,MainSize);-对于GetDefaultSQL()函数返回的表名,对应的缺省操作是SELECT语句,即:SELECT*FROMBasicData,MainSize-查询过程中也可以利用CRecordSet的成员变量m_strFilter和m_strSort来执行条件查询和结果排序。m_strFilter为过滤字符串,存放着SQL语句中WHERE后的条件串;m_strSort为排序字符串,存放着SQL语句中ORDERBY后的字符串。如:Super_ESSet.m_strFilter=TYPE=电动机;Super_ESSet.m_strSort=VOLTAGE;Super_ESSet.Requery();对应的SQL语句为:SELECT*FROMBasicData,MainSizeWHERETYPE=电动机ORDERBYVOLTAGE-除了直接赋值给m_strFilter以外,还可以使用参数化。利用参数化可以更直观,更方便地完成条件查询任务。使用参数化的步骤如下:-(1)声明参变量:CStringp1;floatp2;-(2)在构造函数中初始化参变量4p1=_T();p2=0.0f;m_nParams=2;-(3)将参变量与对应列绑定pFX-SetFieldType(CFieldExchange:param)RFX_Text(pFX,_T(P1),p1);RFX_Single(pFX,_T(P2),p2);-完成以上步骤之后就可以利用参变量进行条件查询了:m_pSet-m_strFilter=TYPE=?ANDVOLTAGE=?;m_pSet-p1=电动机;m_pSet-p2=60.0;m_pSet-Requery();-参变量的值按绑定的顺序替换查询字串中的?适配符。-如果查询的结果是多条记录的话,可以用CRecordSet类的函数Move(),MoveNext(),MovePrev(),MoveFirst()和MoveLast()来移动光标。-2增加记录-增加记录使用AddNew()函数,要求数据库必须是以允许增加的方式打开:m_pSet-AddNew();/在表的末尾增加新记录m_pSet-SetFieldNull(&(m_pSet-m_type),FALSE);m_pSet-m_type=电动机;./输入新的字段值m_pSet-Update();/将新记录存入数据库m_pSet-Requery();/重建记录集-3删除记录-直接使用Delete()函数,并且在调用Delete()函数之后不需调用Update()函数:m_pSet-Delete();if(!m_pSet-IsEOF()m_pSet-MoveNext()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论