使用Delphi开发SQLServer应用程序.ppt_第1页
使用Delphi开发SQLServer应用程序.ppt_第2页
使用Delphi开发SQLServer应用程序.ppt_第3页
使用Delphi开发SQLServer应用程序.ppt_第4页
使用Delphi开发SQLServer应用程序.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

第13章 使用Delphi开发SQL Server应用程序,Delphi的开发环境 Delphi应用程序的开发过程 Delphi数据库应用程序的实现 13.1 Delphi概述 13.2 Delphi应用程序举例分析 13.3 Delphi应用程序的开发 13.4 Delphi应用程序的实现,13.1 Delphi概述,13.1.1 Delphi的特点 Delphi 7是一个针对Windows平台上的跨平台(Windows、Linux)快速开发(RAD)环境,完全支持新近出现的Web服务标准,并且整合了模型驱动的开发方式,同时该套件向开发者提供了对Microsoft .NET框架初步支持。 Delphi实际上是一个Object Pascal的编译器,它提供了一个强大的可视化开发环境,并提供了大量的组件,组件是Delphi中开发应用程序的基础,是建立应用程序界面所必须的基本元素。在Delphi中组件分成两个大类:可视组件与非可视组件。 Delphi将所有的组件都封装在对应的类中,如Edit和ComboBox组件的对应类名是TEdit和TComboBox。对象是类的实例化,即相当于是某一个类的变量。因此Delphi中的所有组件都具有对象的所有特性:封装、继承性和多态性等。Delphi中的对象由三个部分组成:属性(Property)、方法(Method)和事件(Event),13.1.2 Delphi的开发环境,启动Delphi 7主程序,进入图13-1所示的可视化开发环境。它有以下五部分组成。,13.1.2 Delphi的开发环境,1Delphi 主界面(Main Windows) 主界面位于屏幕的上部,包括主菜单(Main Menu)、快捷按钮栏(Speed Bar)和组件面板(Component Panel)。 2对象管理窗口(Object TreeView) 对象管理窗口中显示出当前窗体的一棵对象树,用于描述当前窗体中的各个对象及对象之间的层次关系,,13.1.2 Delphi的开发环境,3对象监视器(Object Inspector) 默认情况下,对象监视器位于屏幕左边的下方。它的功能是编辑和管理一个对象的各项属性并为组件设置事件响应处理程序。对象监视器包含两部分。 位于顶部的是一个下拉式组合框(简称对象列表框),该组合框中包含当前窗体中的所有对象,用户可以通过组合框右边的下拉按钮,从组合框中选择一个对象作为当前对象。 顶部下拉式组合框的下面是一个具有Properties(属性)和Events(事件) 两个选项卡的多选项卡,分别显示当前对象的属性和事件设置情况。 Properties页列出了当前被选择对象的设计期属性,如图13-1所示。它分成左右两个部分,左边是属性名,右边是该属性对应的当前值。 Events页列出了该对象所有可能发生的事件。它也分成左右两个部分,左边是事件名,右边是该事件处理程序的名字,开始时右边都是空的。,13.1.2 Delphi的开发环境,4窗体(Form) Form窗体是应用程序开发时使用最多的一个工作区域。程序中的所有用户界面(即人机接口)均是在这里完成的,因此Form是程序开发阶段的主要战场。 从开始菜单启动Delphi时,系统将自动生成一个名为ProjectX.dpr的工程项目,并将一个空白窗体Form1作为该项目的主窗口显示在用户的眼前;而从一个项目文件启动Delphi时,则用户看到的是该工程项目中的主窗口(Main Form)。 窗体是一个可以放置其它组件的一个容器。设计时用户将组件面板中的若干个组件,按程序设计的要求,将它们放置在窗体的合适位置。也可以使用鼠标将它们拖动到一个合适位置并随心所欲地改变它们的大小。 一个应用程序可以拥有一个以上的窗体,但只能有一个主窗体,用户可以根据程序执行的需要按一定的显示方式显示应用程序中的不同窗体,以满足实际的需求。,13.1.2 Delphi的开发环境,5代码编辑器(Code Editor)窗口 代码编辑器是编写程序代码的场所,图13-1中在窗口Form1后面标有Unit1.PAS的窗口就是代码编辑器窗口。 当用户在窗体中添加组件时,Delphi会自动地生成该组件所需的用户界面代码,用户需做的仅仅是在Delphi生成的代码框架中的适当位置加入完成所需功能的程序代码即可, 如程序中所使用到的常量、变量、过程和函数等就在代码编辑窗口中定义和使用。 可以通过“Toggle Form/Unit”快捷按钮在Form窗体和该Form所对应的Unit单元代码窗口之间进行切换。 代码编辑器窗口中显示的是当前的单元文件,该文件的名字显示在编辑器的标题栏中,如图中的Unit1.pas。当应用程序中含有一个以上的窗体或单元时,可以通过View Unit快捷按钮将指定的单元文件显示在代码编辑器窗口中,供用户编辑和修改。,13.2 Delphi应用程序举例分析,13.2.1 功能总体设计 为了实现学校教务管理系统,需要实现以下主要功能: l 基础信息的数据维护:包括系信息、专业信息、班级信息、学生信息、教师信息、课程类别和课程信息的添加、修改和删除工作。 l 根据每个专业的教学计划,将每个专业在不同学期的课程计划添加到专业课程设置信息表中。 l 根据每个专业的教学计划,制定每个学期每个班级的课程表。 l 根据课程计划,输入学生每个学期每门课程的成绩。 l 允许根据班级或学生个人查询每个学期的成绩,根据班级统计每个班每学期的成绩排名,并实现以上数据的报表输出。 l 用户密码的维护。,13.2.2 功能模块的设计,13.2.2 功能模块的设计,图13-3,图13-4,图13-5,13.3 Delphi应用程序的开发,13.3.1 Delphi应用程序的组成 Delphi使用工程来管理应用程序中的各种文件。Delphi的应用程序由工程文件、窗体文件及对应的单元文件、选项配置文件和资源文件等组成。应用程序创建后,这些文件就已经存在指定的目录中。 Delphi应用程序中的文件有以下几种: 1工程文件(Delphi Project File) 工程文件是一个特殊的单元文件,由Delphi统一管理,一般读者不必关心,但对于需要深入学习Delphi的读者,工程文件是相当重要的,工程文件的扩展名为.dpr。工程文件用来初始化系统环境、建立应用程序主窗口和实例化其它窗口。,13.3 Delphi应用程序的开发,2单元文件(Unit File) 工程文件中的代码仅仅是针对应用程序的,因此该文件往往很短,而程序中极大多数的功能均是在其它单元文件中实现的,在工程文件中只要引用这些单元文件即可,这样可以将一个大的应用程序分解成若干个模块(即单元),再由工程文件将这些模块组合在一起而成为一个整体。这种模块化的设计使程序更为清晰且易于今后的维护。 单元文件由单元文件首部、接口部分(interface)、实现部分(implementation)、可选的初始化部分(Initialization)、结束部分(finalization)和End.共同组成。,13.3 Delphi应用程序的开发,3窗体文件(Form File) 窗体文件存储有关该窗体中对象的信息,它是一个二进制文件,窗体文件的扩展名为“.dfm”。每个窗体文件都有一个与之相对应的单元文件,如有一个UnitStudent.dfm窗体文件,就存在一个名为UnitStudent.pas的单元文件。 为方便用户,Delphi中提供了允许以文本格式观察窗体文件的功能。用鼠标右击窗体的空白位置,在弹出的快捷菜单中选择“View As Text”命令,系统将显示所在窗体的窗体文件内容,用户可以在该界面上修改窗体上各个对象的有关设置。再用鼠标右击窗体文件的文本区域,在弹出的快捷菜单中选择“View As Form”命令,又切换到Form状态。,13.3 Delphi应用程序的开发,4资源文件(Resource File) 该文件由Delphi在创建应用程序时自动建立,用于存放与应用程序有关的主题(Title)、应用程序图标和版本等信息。资源文件的基本文件名与应用程序的工程相同,扩展名为“. res”,是一个二进制文件。 5工程选项文件(Delphi Options File) 该文件由Delphi在创建应用程序时自动建立,用于存放与应用程序有关的工程选项等信息。工程选项文件的基本文件名与应用程序的工程相同,扩展名为“.dof”,是一个文本文件。 6编译指令配置文件 该文件由Delphi在创建应用程序时自动建立,用于存放与应用程序有关的编译指令的设置信息。编译指令配置文件的基本文件名与应用程序的工程相同,扩展名为“.cfg”,是一个文本文件。,13.3 Delphi应用程序的开发,7备份文件 当生成的工程文件、单元文件和窗体文件修改后,系统自动将原文件做一个备份。备份文件的基本文件名与原文件相同,而扩展名改为“.dpr”、“.pas”和“.dfm”。 应用程序编译连接后,又会自动生成: 程序可执行文件 应用程序经过编译连接后最后生成的可执行文件。 单元目标文件 每个单元文件经过编译后生成一个对应的单元目标文件,该单元目标文件被链接到最后生成的可执行文件中。单元目标文件的扩展名为“.dcu”。 动态连接库文件 当用户指定要将该应用程序生成动态连接库时,那么就生成该文件。动态连接库文件的扩展名为“.dll”。,13.3 Delphi应用程序的开发,7备份文件 当生成的工程文件、单元文件和窗体文件修改后,系统自动将原文件做一个备份。备份文件的基本文件名与原文件相同,而扩展名改为“.dpr”、“.pas”和“.dfm”。 应用程序编译连接后,又会自动生成: 程序可执行文件 应用程序经过编译连接后最后生成的可执行文件。 单元目标文件 每个单元文件经过编译后生成一个对应的单元目标文件,该单元目标文件被链接到最后生成的可执行文件中。单元目标文件的扩展名为“.dcu”。 动态连接库文件 当用户指定要将该应用程序生成动态连接库时,那么就生成该文件。动态连接库文件的扩展名为“.dll”。,13.3.2 工程管理,1使用工程管理器(Project Manager) 一般一个工程中包含若干个窗体及单元文件,为了有效地管理工程中的各种不同文件,可以使用Delphi提供的工程管理器来管理。 2工程选项设置 Delphi为每个工程创建了一个工程选项文件,用于保存与该工程相关的参数。工程文件的基本文件名与工程名相同,扩展名为“.dof”。 可以利用“Project Options”工程选项对话框修改工程中的选项,以符合应用程序的需要。,13.3.3 Delphi应用程序的开发过程,Delphi应用程序的开发过程一般分为以下几个步骤: 1创建新的应用程序 当用户启动Delphi后,系统就自动创建了一个新的应用程序,它只有一个空白的Form1窗体。用户可以直接在该空白的窗体中开始一个应用程序设计之旅,也可以执行主菜单的“New”“Application”命令来建立一个新的工程。 2. 向应用程序添加窗体 Windows应用程序是由若干个窗体组成的。一个应用程序可以根据需要拥有多个窗体,当多于1个窗体时,就需为应用程序添加窗体。 单击快捷按钮“New Form”,可以快速地为当前应用程序添加一个新的空白窗体。 3. 设计窗体 窗体创建完成后,就需要根据程序的设计要求向窗体中加入需要的组件。,13.3.3 Delphi应用程序的开发过程,4设置对象属性 通过对象属性的修改可以改变该对象的显示特征。属性的设置既可以在设计阶段进行,也可以通过语句的方式在程序运行期间根据需要进行设置。 5. 为对象编写事件处理程序 对象的属性设置完成后,还需要为对象编写事件处理程序。所谓事件处理程序,就是指程序运行时当用户在该对象上发生了该事件后,程序所要完成的处理动作。 实际编程时,不是每个对象都需要编写事件处理程序的,只要根据程序设计的要求对指定的对象编写事件处理程序即可。 6. 保存文件 当应用程序建立完成后,要及时将应用程序中的文件存盘。 7. 编译与执行程序 先执行菜单中的“Project”“Build 工程文件名”来编译和连接应用程序,然后再调试和运行程序。,13.4 Delphi应用程序的实现,13.4.1 使用到的组件 学校教务管理系统中,使用了组件面板中“Standard”页的Label、Edit和CheckBox组件、“Additional”页中的SpeedButton、BitBtn组件、“BDE”页中的Database、Table、Query、UpdateSQL组件、“Data Controls”页中的DBEdit、DBComboBox、DBLookupComboBox、DBText、DBGrid和DBNavigator组件、“Data Access”页中的DataSource组件和“Win32”页中的DateTimePicker组件。 13.4.2 创建新的应用程序 执行主菜单的“New”“Application”命令,创建一个新的工程。工程中自动创建一个名为“Form1”的空白窗体,工程名自动命名为“Project1”。,13.4.3 数据模块的设计,为使程序中的各个窗体能使用同一个Database组件连接到数据库,使用同一个Table、Query访问同一个数据表中的数据,避免每个窗体使用不同访问组件访问同一个数据表,本程序中使用了Delphi提供的数据模块功能。 1)执行主菜单的“New”“DataModule”命令,Delphi在当前应用程序中添加一个空白的数据模块。 2)向数据模块窗体中放置一个Database组件、两个DataSource组件、一个Table组件、一个Query组件和一个UpdateSQL组件,如图13-4所示。 3)Database组件用于连接数据库。单击Database组件,设置数据库组件的所需属性。将Name属性修改为DatabaseEdu;双击Database组件,系统出现如图13-13所示的配置连接数据库参数对话框。,13.4.3 数据模块的设计,4)在“Name”输入框中指定一个数据库名,应用程序中的其它数据组件通过该数据库名连接到指定的数据库,这里输入Edu。 5)下拉“Alias Name”列表框,从中选择一个已创建的ODBC数据源名,这里选择在第12章中创建的EduDSN。 6)单击“Defaults”按钮,Delphi将根据“Alias Name”列表框中指定的ODBC数据源名自动创建连接数据库的初始参数表,并将该参数表显示在“Parameter Overrides”列表框中。“Parameter Overrides”列表框中的每一行是一个连接参数,在“PASSWORD=”的后面加上edu,用于设置连接密码,“USER NAME=”的后面加上Useredu,用于设置连接用户名,其它参数取默认值。 7)在“Options”栏中,去掉“Login Prompt”复选框中的选中标记。 8)单击“OK”按钮,保存Database组件的连接参数。,13.4.3 数据模块的设计,9)在对象监视器中将Database组件的Connected属性设置为True,验证连接参数的正确性。 10)其它组件的设置请参见表13-1所示。,13.4.3 数据模块的设计,11)双击UpdateSQL1,系统出现如图13-14所示的“Update SQL editor”设置窗口。 12)在“Options”选项页的“Table Name”中是关联的数据表名;“Key Fields”列表框中选中该表的关键字字段,Student表的主关键字字段是StudentID;“Update Fields”列表框中选择需更新的字段,这里选中所有的字段,效果如图13-14所示。 13)单击“Generate SQL”按钮,由Delphi根据前面步骤中设置的参数自动生成对应的数据表插入、更新和删除语句。 14)单击“SQL”选项卡,出现图13-15所示的“Update SQL editor”设置窗口的“SQL”选项页。,图13-14,图13-15,13.4.3 数据模块的设计,15)单击“OK”按钮,关闭“Update SQL Editor”设置窗口。 16)设置DM_Data数据模块的相关事件。在对象监视器中选中DM_Data,单击“Events”选项卡,切换到事件页,双击“OnCreate”事件名后的空白输入栏,Delphi将自动在当前单元中生成“OnCreate”事件所对应的过程定义框架,并将光标置入该过程代码的前面,在此,输入: DatabaseEdu.Connected := True; / 运行时,先连接数据源 用于在程序运行时,由系统自动连接数据库。同样,双击“OnDestroy”事件名后的空白输入栏,Delphi将自动在当前单元中生成“OnDestroy”事件所对应的过程定义框架,并将光标置入该过程代码的前面,在OnDestroy事件中,输入: DatabaseEdu.Connected := False; / 断开与数据源的连接 用于程序运行结束时,由系统自动断开与数据库的连接。 17)单击快捷按钮“”,将数据模块的单元文件以“UnitDM.pas”存盘。至此数据模块设计完成,按以上参数设置后的数据模块窗体如图13-4所示。,13.4.4 学生信息管理窗体的设计,设置了数据模块后,该应用程序就可以使用数据模块与相关数据库进行连接,在其它的窗体上就可以使用数据模块上的相关组件连接数据库,操作数据库中的相关数据。 1)单击快捷按钮组中的“”按钮,在出现的“View Form”对话框中选中“Form1”窗体,单击“OK”按钮,出现“Form1”空白窗体。或单击“” 按钮,在当前应用程序中添加一个空白的Form窗体。 2)向窗体上加入五个SpeedButton按钮、三个Label标签、四个DBEdit、一个DBComboBox、一个DBLookupComboBox、一个DateTimePicker、一个DBText、一个DBGrid和一个DBNavigator组件。在窗体的适当位置放置这些组件,如图13-10所示。,13.4.4 学生信息管理窗体的设计,3) 为了引用数据模块上的对象,在学生信息管理窗体对应单元文件的implementation关键字后的单元引用部分输入uses UnitDM;表示学生信息管理窗体要引用UnitDM单元(即数据模块)中定义的对象。 4) 按表13-2设置相关参数。设置各个属性后的学生信息管理窗体如图13-11所示。 5)设置窗体各对象所需事件的代码。选中FormStudent窗体,单击“Events”选项卡,切换到事件页,双击“OnShow”事件名后的空白输入栏,Delphi将自动在当前单元中生成“OnShow”事件所对应的过程定义框架,并将光标置入该过程代码的前面,在此,按书上代码输入FormStudent的OnShow事件. 6)双击“OnClose”事件名后的空白输入栏,按书上代码编写FormStudent的OnClose事件。,13.4.4 学生信息管理窗体的设计,7) 因数据显示组件中没有对应的日期组件,因此需要在数据表的记录指针移动后,将学生的出生年月送入DateTimeBirthday对象中显示。这里自定义了一个QueryStudent对象的Aft

温馨提示

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

评论

0/150

提交评论