1、目 录上一页下一页退 出要 点1目 录上一页下一页退 出要 点2本本 章章 要要 点点10.110.1数据库应用系统开发过程数据库应用系统开发过程10.210.2调试技术调试技术10.310.3容错技术容错技术10.410.4应用程序发布应用程序发布目 录上一页下一页退 出要 点310.1 数据库应用系统开发过程数据库应用系统开发过程 10.1.110.1.1数据库应用系统的开发步骤数据库应用系统的开发步骤 1 1可行性分析可行性分析 2 2需求分析需求分析 3 3数据设计数据设计 4 4应用程序设计应用程序设计 5 5测试测试 6 6维护维护 目 录上一页下一页退 出要 点410.1.2 构
2、造应用程序框架(1)设置应用程序起始点 在项目管理器中设置主文件的方法为:单击要设置为主文件的程序或表单或菜单文件,从【项目】菜单或快捷菜单中选择【设置主文件】选项。(2)初始化环境(3)显示初始的用界面(4)控制事件循环(5)恢复初始的开发环境(6)组织主程序文件 目 录上一页下一页退 出要 点5【例10-2】为本书中的学生成绩管理系统设计一个主程序(MAIN.PRG),并设置为主文件【例10-2】为本书中的学生成绩管理系统设计一个主程序(MAIN.PRG),并设置为主文件。MAIN.PRG代码如下:DO start.PRG&调用程序建立环境设置(在公 有变量中保存值)DO form MAI
3、NFORM&将例9-3设计的带菜单的顶层表单作为初始的用户界面显示READ EVENTS&建立事件循环。DO CLEANUP.PRG&在退出之前,恢复环境设置Start.PRG中代码如下:Public cTalkVal&定义全局变量目 录上一页下一页退 出要 点6IF SET(TALK)=”ON”SET TALK OFF cTalkVal=“ON”&保存SET TALK设置ELSEcTalkVal=“ON”Endif Open database student&打开数据库Application.visible=.F.&隐藏Visual FoxPro主窗口CLEANUP.PRG中代码如下:set
4、 talk&ctalkval&恢复SET TALK设置close database&关闭数据库clear all windods&释放所有窗口Application.visible=.T.&显示Visual FoxPro主窗口目 录上一页下一页退 出要 点710.1.3 使用项目管理器组织与管理文件 1创建一个项目(1)在系统菜单中单击【文件】|【新建】,此时系统将弹出新建对话框。(2)在“新建”对话框的“文件类型”中选择“项目”,单击“新建文件”按钮。(3)在弹出的“创建”对话框中输入项目的名称,并选择保存项目的目录后单击“保存”按钮。这时就新建成了一个项目并打开了项目管理器。在项目管理器中
5、创建各类文件的方法在前面各章节中均有介绍,在此不再细述,本节仅介绍项目管理器的文件管理功能。目 录上一页下一页退 出要 点82添加和移去文件 从项目中选定要移去的文件或对象。单击“移去”按钮;系统将弹出如图所示对话框。如果单击“移去”按钮,将从项目中移去该文件或对象;如果单击“删除”按钮,将从项目中移去该文件或对象,并将文件从磁盘上永久性地删除。目 录上一页下一页退 出要 点93创建及修改文件(1)选定要创建的文件类型。(2)单击“新建”按钮或“修改”按钮,即可激活Visual FoxPro 相应的设计器或向导。例如,要修改一个表,只需选定该表的名称,用通过鼠标指针双击或单击“修改”按钮,即可
6、进入“表设计器”显示该表结构。目 录上一页下一页退 出要 点104为文件添加说明为文件添加说明通过设置出现在项目管理器中的文件说明信息,可更方便地跟踪文件。其方法是:(1)在项目管理器中选定所需的文件。(2)选择“项目”菜单中的“编辑说明”命令。(3)在弹出的“说明”对话框中键入该文件的说明信息。(4)单击“确定”按钮。目 录上一页下一页退 出要 点115设置文件的包含或排除属性 6编辑或查看项目信息 在系统菜单中选择【项目】|【项目信息】命令,打开如图所示对话框。编辑项目信息:在项目信息对话框中,单击项目选项卡,可以查看或编辑作者有关信息 单击文件选项卡,可以一次性查看所有的项目文件 目 录
7、上一页下一页退 出要 点1210.1.4 项目连编 1测试项目 在项目管理器中,单击“连编”按钮。系统将弹出如图所示的连编选项对话框。在“连编选项”对话框中,选择“重新连编项目”目 录上一页下一页退 出要 点133连编一个应用程序若要连编一个应用程序,可使用BUILD APP或BUILD EXE命令。或者进行如下操作。(1)在项目管理器中,单击“连编”按钮。(2)在“连编选项”对话框中,选择“连编应用程序”,生成.app文件;或者选择“连编可执行文件”以建立一个.exe文件。(3)选择所需其他选项并单击“确定”按钮。当为项目建立一个最终的应用程序文件之后,就可运行了 目 录上一页下一页退 出要
8、 点144运行运行.app应用程序应用程序 要运行.app应用程序,可从“程序”菜单中选择“运行”命令,然后选择要执行的应用程序;或者在“命令”窗口中,键入DO和应用程序文件名。例如,要运行应用程序“项目1”,可键入:DO 项目1.app 5运行运行.exe文件文件如果从应用程序中建立一个.exe文件,可以使用如几种方法运行该文件:(1)从Visual FoxPro中,从“程序”菜单中选择“运行”,然后选择一个应用程序文件;(2)在Windows中,双击该.exe文件的图标 目 录上一页下一页退 出要 点1510.2 调试技术 10.2.1 建立测试环境建立测试环境 1硬件和软件问题为了获得最
9、大的可移植性,应当在预期运行的最底层平台上开发应用程序。要保证应用程序能在满足最低要求的平台上正常工作,应该做到以下几点:(1)使用最低层常用的视频方式开发应用程序。(2)确定最低所需的以及存储介质的空间大小,其中应包括必需的驱动程序以及同时运行的软件所占用的空间。(3)对于应用程序的网络版,还应考虑内存、文件和记录锁定特殊要求。目 录上一页下一页退 出要 点162系统路径和文件属性为了在运行应用程序的每台机器上都能够快速访问所有必需程序文件,可能需要确定一个基本文件配置。在定义基本配置时,应考虑下列问题:(1)应用程序是否需要公用系统路径。(2)设置的文件存取属性是否合适。(3)为每个用户设
10、置的网络权限是否正确 目 录上一页下一页退 出要 点173目录结构和文件位置如果源代码引用的是绝对路径或文件名,那么当应用程序安装到任何其他机器上时必须存在相同的路径和文件。若要避免这一情况,可采用以下方法:(1)使用Visual FoxPro配置文件。(2)另建一个目录或目录结构,将源文件和生成的应用程序文件分开。这样就可以对应用程序的相互引用关系进行测试,并且准确地知道在发布应用程序时应包含哪些文件。(3)使用相对路径。目 录上一页下一页退 出要 点1810.2.2 设置验证的内容 在代码中可以包含验证的内容,其作用是验证代码运行环境的假设情况。若要设置验证的内容,使用ASSERT命令标明
11、程序中的假设。当ASSERT命令中所规定的条件为“假”(.F.)时,将显示一个提示信息对话框,同时在“调试输出”窗口中反映出来。例如,可以编写一个函数,函数需要一个非的参数值。如果参数为时,下面的函数代码将提醒用户:ASSERT nParm!=0 MESSAGE“接受的参数数值为0”。可以使用SET ASSERTS命令指定是否显示提示信息,默认情况下,不显示提示信息。目 录上一页下一页退 出要 点1910.2.3 在调试器中调试程序 1打开调试器 选择【工具】|【调试 器】命 令。“调试器”窗口是一个独立运行的窗口,它有自己的菜单和工具栏,在“调试器”窗口中可有选择地打开5个子窗口:跟踪、监视
12、、局部、调用堆栈和调试输出。如图所示 目 录上一页下一页退 出要 点202跟踪代码跟踪代码 在调试中,最有用的方法就是跟踪代码,以此观察每一行代码的运行,同时检查所有的变量、属性和环境设置值,如图所示 1、如果“跟踪”窗口没有打开,在调试窗口的菜单栏中选择【窗口】|【跟踪】命令 2、在调试窗口的菜单栏中选择【调试】|【运行】命令。打开要调试的程序 3、在调试窗口的菜单栏中选择【调试】|【单步】命令(或F6键),或选择【调试】|【单步跟踪】命令(F8键)目 录上一页下一页退 出要 点213设置断点(1)在特定代码行设置断点 在“跟踪”窗口中,找到需要设置断点的那一行,并将光标放置在该代码行上 按
13、下F9键或者单击“调试器”工具栏上的“切换断点”按扭。或者双击该行代码行左边的灰色区域,该代码行左边的灰色区域中会显示一个实心点,这表明在该行已经设置一个断点。如果正在调试对象,那么,通过从对象列表中选择对象,从过程列表中选择所需方法程序或事件,就可以在“跟踪”窗口中找到特定的代码行 目 录上一页下一页退 出要 点22(2)在文件指定位置设置断点 在调试窗口中选择【工具】|【断点】命令,打开“断点”对话框 1、在“类型”列表框中选择“在定位处中断”2、在“定位”和“文件”输入框中指定所需断点的位置和文件来设置断点 目 录上一页下一页退 出要 点234移去断点移去断点 在“断点”对话框中,单击断
14、点列表框中某断点左侧的复选框可使该断点无效,单击“删除”按钮可删除选定的断点。在“跟踪”窗口中,双击断点标记可以删除该断点。目 录上一页下一页退 出要 点245查看存储元素的值查看存储元素的值(1)在“局部”窗口中查看变量的值 “局部”窗口会显示调用堆栈上的任意程序、过程或方法程序里所有的变量、数组、对象和对象元素,如图所示。默认情况下,在“局部”窗口中所显示的是当前执行程序中的变量值 通过在“位置”列表中选择程序或过程,也可以查看其他程序或过程中的变量值 目 录上一页下一页退 出要 点25(2)在“监视”窗口中查看变量的值 在“监视”窗口的“监视”框中,键入任意一个有效的Visual Fox
15、Pro表达式,然后按下回车键。这时,该表达式的值和类型就会出现在“监视”窗口的列表中。如图所示 若要从“监视”窗口中移去某监视项,选择该项,然后按DEL键;或者从快捷菜单中,选择“删除监视”目 录上一页下一页退 出要 点26(3)在“跟踪”窗口中查看变量值 在“跟踪”窗口中,将光标定位到任何一个变量、数组或属性上,就会出现提示条,并显示它的当前值 目 录上一页下一页退 出要 点276查看事件发生的序列 若要跟踪事件,可按如下操作:在调试窗口的菜单中选择【工具】|【事件跟踪】命令。打开如图所示的跟踪对话框。选择要跟踪的事件:系统默认的跟踪事件为Visual FoxPro系统定义的所有事件,用户可
16、从“跟踪事件”列表中选择不跟踪的事件,并单击中部的左箭头按钮将其加入“可用事件”列表中 启动事件跟踪:选中“开启事件跟踪”复选框,便可激活事件跟踪 选择跟踪输出去向 目 录上一页下一页退 出要 点2810.3 容错技术容错技术 10.3.1 处理运行时刻错误 “运行时刻错误”是指在应用程序开始执行后由于环境的变化而引发的错误 函数或命令说明AERROR(数组)创建一个数组,存储最近的错误信息。ERROR N产生指定的错误(错误号为N),以测试自己的错误处理程序ERROR()返回一个错误编号MESSAGE(1)返回一个错误信息字符串,或错误代码行ON ERROR 命令 当错误发生时,执行一个命令
17、PROGRAM()或SYS(16)返回当前执行程序的名称RETRY重新执行前一个命令。处理“运行时刻错误”有效的函数和命令 目 录上一页下一页退 出要 点2910.3.2 防止运行时刻错误的发生 要防止“运行时刻错误”的发生,首先需要预见错误可能会在何处发生,然后针对可能发生错误的代码进行修改【例10-3】运行时打开STUD表,如果表不存在,显示出错信息。不能容错的代码:USE STUD能容错的代码:IF FILE(stud)USE stud Else MESSAGEBOX(打开表错误,0,提示)ENDIF目 录上一页下一页退 出要 点3010.3.3 处理运行时错误 有时不能预见所有可能发生
18、的错误,也许不想这样做。这时,我们就需要利用Visual FoxPro提供的错误捕获功能:ON ERROR DO 一般情况下,可将有可能出现运行时错误的代码放在ON ERROR DO 和ON ERROR之间要中止ON ERROR DO 错误捕获功能,可执行不带任何参数的ON ERROR命令,将错误信息重置为Visual FoxPro的内置错误信息如果在代码中用ON ERROR DO 命令启动了Visual FoxPro的错误捕获功能,在后续代码中发生任何运行时错误,系统都会执行中的代码,然后跳过错误代码行,接着执行错误代码行的下一语句。如果希望重新执行错误行代码,可使用RETRY命令目 录上一
19、页下一页退 出要 点31【例10-4】假若系别表(DEP)的代号字段被定义为主关键字,如果用SQL语句向系别表(DEP)插入一条新记录,可用命令:DEPNO=02INSERT INTO DEP VALUES(&DEPNO,中文系)如果DEP表中已有代号为“02”的记录,这条命令在运行时就会发生错误。为了处理这类错误,可将代码修改为:DEPNO=02ON ERROR DO ERRORPROCINSERT INTO DEP VALUES(&DEPNO,中文系)ON ERROR目 录上一页下一页退 出要 点32ERRORPROC.PRGnAnswer=MESSAGEBOX(关键字冲突,插入记录失败,
20、2+48+512,”错误”)DO CASE CASE nAnswer=3&退出 CANCELCASE nAnswer=4&重试*修改DEPNORETRYOTHERWISE&忽略 RETURNENDCASE目 录上一页下一页退 出要 点3310.3.4 处理类和对象中的错误处理类和对象中的错误 当方法程序代码中出错时,Visual FoxPro将检查和该对象的rror事件相关的错误处理代码。如果在该对象的Error事件上没有代码,则将从父类或高于该类的其他类中执行Error事件的代码。如果在该类的层次结构中,找不到Error事件代码,isaul FoxPro将检查ON ERROR 例程。如果ON
21、 ERROR例程不存在,Visual FoxPro则显示默认的错误信息 目 录上一页下一页退 出要 点3410.4 应用程序发布应用程序发布 10.4.1 制作发布盘前的准备工作 1创建发布盘的步骤 创建发布目录。把应用程序文件从项目中复制到发布目录的适当位置。创建发布盘 目 录上一页下一页退 出要 点352创建发布目录创建发布目录 发布目录用来存放构成应用程序的所有项目文件的副本。发布目录树的结构也就是由“安装向导”创建的安装程序将在用户机器上创建的文件结构。如图所示 若要创建发布目录可按如下步骤进行:创建目录,目录名为希望在用户机器上出现的名称。把发布目录分成适合于应用程序的子目录。把应用
22、程序项目中的文件复制到相应目录中。应用程序(.exe)必须放在该树的根目录下,如VFP。目 录上一页下一页退 出要 点363创建发布盘创建发布盘 创建发布盘时,“安装向导”压缩发布目录树中的文件,并把这些压缩过的文件复制到磁盘映射目录,每个磁盘放置在一个独立的子目录中。用“安装向导”创建应用程序磁盘映射之后,就把每个磁盘映射目录的内容复制到一张独立的磁盘上。在软件发布后,用户通过运行“磁盘1”上的Setup.exe程序,便可安装应用程序的所有文件 目 录上一页下一页退 出要 点3710.4.3 用安装向导创建发布盘 从系统菜单中选择【工具】|【向导】|【安装】命令 指定发布树 选择可选组件 指定磁盘映像 自定义安装对话框 指定默认文件的安装目的地 查看文件总结报告 完成安装向导过程