VFP查询与视图ppt课件_第1页
VFP查询与视图ppt课件_第2页
VFP查询与视图ppt课件_第3页
VFP查询与视图ppt课件_第4页
VFP查询与视图ppt课件_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

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

文档简介

.,主讲:杜春敏,.,学习要点,1、查询向导和查询设计器的使用方法;2、单表查询和交叉表查询;3、查询设计器中各选项卡的功能和使用方法;4、本地视图和远程视图;5、视图向导和视图设计器的使用方法;6、使用视图。,查询与视图,.,第3章查询与视图,3.2用查询向导设计查询,3.3用查询设计器设计查询,3.4创建视图,3.5数据库视图的操作,小结,返回,退出,3.6利用视图更新数据,3.7利用视图处理自由数据,.,3.2用查询向导设计查询,3.2.1设计单表查询,3.2.2建立交叉表,返回,退出,.,3.2.1设计单表查询,查询向导可以引导用户快速设计一个查询。下面将示例使用查询向导设计一个简单的单表查询:从XGGL数据库的Student表中查询系部代号为“04”且是99级的所有学生的信息。操作过程如下:首先从“文件”开始,选择【新建】-“查询”,然后单击【向导】按钮,则出现设计查询的方式选择对话框。,单击,.,选择XGGL数据库中的Student表,并将该表中的所有字段添加到“选定字段”列表框中。,单击,查询向导字段选取,.,从中选择Student.系部代号,0,在此输入值,4,取默认值,从中选择“包含”,在此输入值,9,8,单击,单击【预览】按钮可以显示查询结果。根据要求,设置条件如上图。其中,虽然表中没有年级字段,但可通过“学号”得到年级(学号的前二位为年级)。,查询向导筛选记录,.,选择排序字段,单击【添加】,选择排序方式,调整排序顺序,移动按钮,单击,查询向导记录排序,.,查询向导限制记录,限制查询结果中所包含的记录数,说明:查询结果中所包含的记录数限制共有四种方式:1、“部分类型”中选择“所占记录百分比”,“数量”中选择“所有记录”,查询结果集中包含全部记录。2、“部分类型”中选择“所占记录百分比”,“数量”中选择“部分值”,再在“微调框”中设置数值,查询结果集中包含指定数值百分数的记录。,3、“部分类型”中选择“记录号”,“数量”中选择“所有记录”,查询结果集中包含全部记录。4、“部分类型”中选择“记录号”,“数量”中选择“部分值”,再在“微调框”中设置数值,查询结果集中包含指定数值的记录数。,单击,取默认值,查询结果集中包含全部记录,.,查询向导完成,将查询以文件的形式(.QPR)保存到一个指定的目录中。,将查询保存到一个指定的目录中并运行该文件。,利用查询向导设计的查询功能有限,可以使用查询设计器修改它。,单击,可以查看查询结果集中的全部数据,打开帮助文件,取消所建立的查询,返回到向导的上一步,结束向导,完成查询设计。,单击,.,保存设计的查询,目录选择下拉列表框,文件名输入文本框,文件类型选择下位列表框,在“文件名输入文本框”中输入“Stud_query”后,单击【保存】按钮,结束查询设计过程。,在项目管理器中的“数据”选项中的查询项下产生了一个查询文件,返回,.,3.2.2建立交叉表,如果在上文所述的建立查询的第一步选择“交叉表向导”,则可以建立交叉表。下面通过示例来介绍如何建立交叉表。用Grade表中的数据建立一个交叉表,以显示每个学生所有课程的总成绩。Grade表中的部分数据如:前面的设计过程同以上内容,但是在第二步需要确定交叉表的行和列。,.,交叉表设计向导字段选取,选择数据库和表,选定字段,单个字段选定按钮,全部字段选定按钮,单个字段撤消按钮,说明:在这一步先在“数据库和表”一选择一个数据库,再选择用以建立交叉表的数据表,然后再从可用字段列表框中选择要用的字段,交叉表只用三个字段,这一步可多选字段。,全部字段撤消按钮,单击,.,交叉表向导定义布局,说明:(1)行,将要加入到交叉表中的第一个字段名,本示例中选择字段“学号”;(2)列,将要加入到交叉表中的从第二个字段开始的若干个字段的字段名,注意这些从源表中选择的数据不能超过254个。本示例中选择字段“课程代号”;(3)数据,对应行和列的运算结果,本示例中选择“课程成绩”。,按提示操作:从可用字段列表框中将“学号”字段拖入“行”框,将“课程代号”拖入“列”框,将“课程成绩”拖入“数据”框。,.,交叉表查询向导加入总结信息,说明:这一步的操作,决定在生成的交叉表中要加入的一个字段的内容。,(1)求和:求出对应行和列的数据字段的和;(2)计数:求出对应行和列的数据字段的数目;(3)平均值:求出对应行和列的数据字段的平均值;(4)最大值:求出对应行和列的数据字段的最大值;(5)最小值:求出对应行和列的数据字段的最小值。,本示例中选择“求和”运算。如果不想加入总结信息,可以在“分类汇总”中选择“无”。,.,交叉表向导完成,将交叉表查询以文件的形式(.QPR)保存到一个指定的目录中。,将交叉表查询保存到一个指定的目录中并运行该文件。,将交叉表查询保存到一个指定的目录中并打开“查询设计器”修改它。,对于值为空的记录是否以.NULL.填充,说明:系统默认值是“保存交叉表查询”和“显示NULL值”。,.,交叉表保存及运行结果,按上一步的操作完成后,进行到“另存为”对话框中,将该查询取名为Grad_Query,然后保存在默认的目录中。保存后,系统进入到数据查询过程,稍候系统将查询结果显示出来。如:,从中可以看到,凡是没有数据的栏,就被.NULL.值填充,且有许多数据丢失。交叉表可以用数据过滤处理,在下一节中介绍。,返回,.,3.3用查询设计器设计查询,3.3.1确定各表间的联接关系,退出,3.3.2选定查询字段,3.3.3筛选记录,3.3.4查询结果排序,3.3.5建立分组查询,3.3.6杂项的设置,3.3.7定向输出查询结果,3.3.8运行查询,返回,.,3.3用查询设计器设计查询,在实际应用中,查询向导设计的查询往往不能满足需求。这时还可以采用查询设计器方便灵活的设计各种查询,也可以先用查询向导设计一个简单的查询,再打开并修改它。将上一节建立的Grad_Query交叉表查询,用“查询设计器”进行修改,使用之包含尽可能少的空栏。可以通过以下所提供的多种方法之一来打开查询设计器:从“项目管理器”启动查询设计器1、在“项目管理器”中选择“数据”选项卡,再选取“查询”项,再单击【新建】,进入查询设计方式选择对话框后单击【新建查询】,则启动“查询设计器”。2、在“项目管理器”中选择“数据”选项卡,从“查询”项中选择一个已存在的查询文件,再单击【修改】,也启动“查询设计器”。,.,从【文件】菜单启动查询设计器选择系统菜单中的【文件】|【新建】命令,在“新建”对话框中选中“文件类型”下的“查询”单选项,再单击右边的【新建文件】按钮,也可启动“查询设计器”;,使用CREATEQUERY命令也可启动“查询设计器”,.,查询设计器下部分的窗口中有几个选项卡,其含义简介如下:(1)“字段”:用来选定包含在查询结果中的字段;(2)“排序依据”:用来决定查询结果输出中记录或行的排列顺序;(3)“联接”:用来确定各数据表或视图之间的联接关系;(4)“筛选”:相当于命令SETFILTERTO,利用过滤的方法查找一个特定的数据子集;(5)“分组依据”:所谓分组就是将一组类似的记录压缩成一个结果记录,这样就可以完成基于一组的计算。,返回,查询设计器窗口,.,查询文件设计与创建步骤,要设计一个查询文件,首先必须明确查询的目的是什么,即想要得到哪些数据,并以什么方式存在;或者想要得到满足某些条件的特定记录,或者想要知道某些记录的字段值组合成的表达式按某一方式输出。明确了输出的数据后,就可以开始设计查询了,一般要通过以下几个步骤进行:(1)启动查询设计器;(2)选择出现在查询结果中的字段;(3)设置选择条件来查找可给出所需结果的记录;(4)设置排序或分组选项来组织查询结果;(5)选择查询结果的输出类型:表、报表、浏览等;(6)运行查询。,.,3.3.1确定各表间的联接关系,示例:创建一个含有多个表中信息的查询。在XGGL数据库中有三个表:Student、Grade、Courses,现在想知道学号前四位是9904和9804的所有学生考试的成绩。当在多个表或视图间进行查询时,需要指出这些表或视图间的联接关系。操作方法如下:启动查询设计器,在“添加表和视图”对话框中从“数据库”中选择GXGLXT库,在“数据库中的表”中选择Student表,单击【添加】按钮,再选择Grade表,再单击【添加】,,.,此时系统自动弹出一个“联接条件”,询问是否根据两表中都有的“学号”字段建立内部联接,单击“确定”,两表间就有了一条连线,代表它们之间的联接。然后再添加Courses表,最后关闭对话框。,.,在“查询设计器”中选择“联接”选项卡,如图:,.,(1)InnerJoin:内部联接,指定只有满足联接条件的记录包含在结果中,此类型是默认的,也是最常用的;(2)RightOuterJoin:右联接,指定满足联接条件的记录,以及满足联接条件右侧的表中记录(即使不匹配联接条件)都包含在结果中;(3)LeftOuterJoin:左联接,指定满足联接条件的记录,以及满足联接条件左侧的表中记录(即使不匹配联接条件)都包含在结果中;(4)FullJoin:完全联接,指定所有满足和不满足联接条件的记录都包含在结果中。如果想修改各表间的联接,双击查询设计器上部窗口表之间的连线,系统将弹出“连接条件”对话框;或者通过打开查询设计器下部的“联接”选项卡进行。一般不应随便更改连接条件,不然会与实际数据间的关系不符。,在VFP6中表间的联接有四种类型,分别是:,.,“条件”列表中包含如下几项:(1)=:指字段值与实例相等;(2)LIKE:表示“字段名”栏中给出的字段值与“实例”栏中给出的文本值之间执行不完全匹配,它主要针对字符类型。例如,如设置查询条件为“Student.学号LIKE9904”,那么诸如“学号”字段前四位为9904的记录都满足该条件;(3)=:表示在“字段名”栏中给出的字段值与“实例”栏中给出的文本值之间执行完全匹配检查,它主要是针对字符型。(4):即为“字段名”栏中给出的字段的值应大于“实例”栏中给出的值;(5)=:即为“字段名”栏中给出的字段的值应大于或等于“实例”栏中给出的值;(6)=、=FilterCondition:指定包含在查询结果中的记录必须满足条件。筛选条件的数目没有限制,只要将它们用.AND.或.OR.操作符连接起来即可。也可以使用操作符.NOT.对逻辑表达式取反,或使用EMPTY()函数检查字段是否为空等。GROUPBYGroupColumn:按列的值对查询结果进行分组。GroupColumn可以是常规的表字段名,也可以是一个包含SQL字段函数的字段名,还可以是一个数值表达式指定查询结果表中的列位置。HAVINGFilterCondition:指定包含在查询结果中的组必须满足的条件。它应和GROUPBYGroupColumn一起使用。UNIONALLSELECTCommand:把一个SELECT语句的最后查询结果同另一个SELECT语句最后的查询结果组合起来。ALL防止UNION删除组合结果中的重复行。ORDERBYOrder_Item:根据列的数据对查询结果进行排序。每个Order_Item都必须对应查询结果中的一列。,.,用SELECTSQL命令完成上节的设计任务:SELECTDepartment.系部名称,Classzc.班级名称,Student.学号,;Student.姓名,Course.课程名,Grade.课程成绩;FROMgxglxt!departmentINNERJOINgxglxt!classzc;INNERJOINgxglxt!student;INNERJOINgxglxt!grade;INNERJOINgxglxt!course;ONGrade.课程代号=Course.课程代号;ONStudent.学号=Grade.学号;ONClasszc.班级代号=Student.班级代号;ONDepartment.系部代号=Classzc.系部代号;WHEREClasszc.系部代号=04;.AND.Grade.开课学期=第1学期;ORDERBYStudent.学号;INTOCURSOR视图1,.,运行该SELECT语句后,选择【显示】|【浏览“视图1”】屏幕显示如图:,返回,.,3.4.3创建远程视图,1、用视图向导创建远程视图创建使用远程数据(ODBC)的视图,必须存在一个数据库来保存视图,同时还需要存在数据源或命名连接。如果没有打开数据库,系统将提示打开数据库或创建数据库。在运行“远程视图向导”之前,可以在“选项”对话框的“远程数据”选项卡上设置远程视图和连接的默认选项。也可以在“连接设计器”中创建连接。如果要利用远程视图向导创建远程视图,则选择【文件】|【新建】命令,在弹出的新建对话框中选中远程视图,然后单击【向导】按钮。就会进入远程视图向导对话框中。或者在数据库设计器工具栏中单击【新建远程视图】按钮,选择使用向导。,.,创建远程视图主要有以下步骤:1、数据源选取2、字段选取3、为表建立关系4、包含记录5、排序记录6、筛选记录7、完成,在第一步数据源选取中,可以在可用的数据源列表框中选择一种ODBC数据源或者一个已经建立的连接。如果选择的是一种未连接任何数据源的ODBC数据源,系统将显示一个“确认连接”对话框,从中选择一个数据源。当选择的VFPTables或VFP,.,Databases时,会打开建立数据源对话框。在此对话框中为数据库选择一种类型,同时在Path中输入远程数据源的文件名或者使用【Browse】按钮选择一个文件作为远程数据源。,选择数据源以后,向导就会进入下一步,以后的步骤与本地视图及创建查询没有太大的差别,在此不再赘述。,.,2、利用视图设计器创建远程视图创建新的远程视图首先必须要有同数据源的连接。在数据库设计器中单击鼠标右键选择【新建远程视图】或者在【文件】下的【新建】命令,在新建对话框中选择远程视图,并单击【新建文件】按钮。此时会显示选择连接或数据源对话框,在此对话框中选择连接或者可用的数据源。如图。,.,如果已经存在定义的连接,该对话框中就显示所定义的连接。如果要定义新的连接,可单击【新建】按钮,出现图示的“连接设计器”。,.,在数据源下面的下拉选项框中选择VisualFoxProDatabase项,其它项均采用系统默认设置,然后选择【验证连接】按钮。如果为这个连接指定了一个数据库,则会出现“连接成功”的提示信息,否则,将出现如图所示的连接配置(ConfigureConnection)对话框。,在该对话框中选择【Browse】后将出现图示的“选择数据库”(SelectDatabase)对话框。,.,在此对话框中可以选择本地存在的数据库或网上邻居中设置为共享的数据库。然后选择【打开】,就会在“连接配置ConfigureConnection”对话框中“Path”后的文本框中加入所添加的数据库文件名及其所在的路径,如“092FOXPRO上机操作Visualfp.dbc”。然后按【OK】,系统会告诉“连接成功”。然后再在“连接设计器”中单击【确定】,接着弹出“保存对话框”,默认的连接名为“连接1”,可以采用默认的连接名,也可以重命名连接名,再单击【确定】。,.,在保存连接后,“远程视图设计器”进入“打开”对话框。在视图设计器中对加入的表创建远程视图的操作与建立本地视图的操作一样,此处不再赘述。,.,3、控制如何检查更新冲突如果在一个多用户环境中工作,服务器上的数据也可以被别的用户访问,也许别的用户也在试图更新远程服务器上的记录,为了让VFP检查用视图操作的数据在更新之前是否被别的用户修改过,可使用更新条件选项卡上的选项。在更新条件选项卡中,SQLWHERE子句包括框中的选项可以帮助管理遇到多用户访问同一数据时应如何更新记录。在允许更新之前,VFP先检查远程数据源表中的指定字段,看看它们在记录被提取到视图中后有没有改变,如果数据源中的这些记录被修改,就不允许更新操作。在“更新条件”选项卡中可以设置SQLWHERE子句。这些选项决定哪些字段包含在UPDATE或DELETE语句的WHERE子句中,VFP正是利用这些语句将在视图中修改或删除的记录发送到远程数据源或源表中,WHERE子句就是用来检查自从提取记录用于视图中后,服务器上的数据是否已改变。,.,关键字段:当源表中的关键字段被改变时,使更新失败。关键字和可更新字段:当远程表中任何标记为可更新的字段被改变时,使更新失败。关键字和已修改字段:当在本地改变的任一字段在源表中已被改变时,使更新失败。关键字和时间戳:当远程表上记录的时间戳在首次检索之后被改变时,使更新失败(仅当远程表有时间戳列时有效)。4、定制视图同本地视图一样,可以在远程视图中包含表达式,设置提示输入值,也可以设置高级选项来协调与服务器交换数据的方式(1)控制更新方法若要控制关键字段的信息实际上在服务器上更新的方式,可使用视图设计器中更新条件选项卡中“使用更新”中的选项。如图,.,当记录中的关键字更新时,这些选项决定发送到服务器或源表中的更新语句使用什么SQL命令。,可指定先删除记录,然后使用在视图中输入的新值取代原值(SQLDELETE然后INSERT),也可指定使用服务器支持的SQLUPDATE函数来改变服务器的记录。(2)在远程视图中添加表达式若要在视图中添加表达式,可在“筛选”选项卡中,从“字段名”框中选择“表达式”。当视图基于远程数据源时,在“表达式设计器”中显示的函数反映了服务器所支持的函数。可以查看服务器文档中列出的该服务器所支持的函数列表,VFP不对构造的表达式作语法分析,而是将它们发送到远程服务器上。,.,5、建立连接使用远程视图,无需将所有记录下载到本地计算机上即可提取远程ODBC服务器上的数据子集。可以在本地机上操作这些选定的记录,然后把更改或添加的值返回到远程数据源中。有两种连接远程数据源的方法,可以直接访问在机器上注册的ODBC数据源,也可以用连接设计器设计自定义连接。在安装VFP时,选择VFP的“完全”或“自定义”安装选项,就可以把ODBC安装在系统中。如果想为服务器创建定制的连接,可以使用连接设计器,创建的连接将作为数据库的一部分保存起来,并含有如何访问特定数据源的信息。使用连接设计器能够创建并修改命名连接。因为连接是作为数据库的一部分存储的,所以仅在有打开的数据库时才能使用连接设计器。连接设计器对话框中有如下选项:(1)指定的数据源,.,数据源、用户标识、密码指定VFP显示以下三个框:数据源:允许从已安装的ODBC数据源列表中选择一个数据源。用户标识:如果数据源需要用户名称或标识,允许键入。密码:如果数据源需要密码,允许键入密码。数据库:可以选择一个数据库,作为所选数据源连接的目标。连接串:指定VFP显示连接串文本框,可在其中键入连接串。选择对话按钮,显示选择连接或数据源对话框,如图所示。,可以选择现有文件或机器数据源。【验证连接】:可以对那些刚输入了内容的连接进行检查。如果连接成功,则显示对话框提示此消息;如果连接失败,则出现错误信息。如果没有对话指定内容,则显示选择,.,数据库对话框,从中选择数据源。前文已作介绍。【新建数据源】:显示“DataSources”对话框,可以在其中添加、删除或配置数据源。前文已作介绍。(2)显示ODBC登录提示未指定登录信息时显示:如果在命名连接定义中未存储用户标识和密码,则VFP用“ODBC数据源注册”对话框提示用户。总显示:指定VFP总是使用“ODBC数据源注册”对话框提示用户,该框允许用户使用与存储在命名连接中不同的注册ID和密码。从不显示:指定VFP从不提示用户。此选项确保更高的安全性。(3)数据处理此选项与用户用DBSETPROP()函数设置的连接属性相对应。异步执行:指定异步连接。此选项与Asynchronous连接属性相对应。显示警告信息:指定显示不可捕获警告。此选项与Disp,.,warning连接属性相对应。批处理:指定以批处理方式进行连接操作。此选项与BatchMode连接属性相对应。自动事务处理:指定自动执行事务处理。此选项与Transactions连接属性相对应。包大小:当和远程数据位置之间传送信息时,可以指定传送信息网络包的大小(以字节为单位)。在下拉列表中选择或键入一个值。(4)超时间隔这些选项设置连接属性的值,也可用DBSETPROP()函数设置。连接(秒):以秒为单位指定连接超时时间间隔。此选项与ConnectTimeout连接属性相对应。查询(秒):以秒为单位指定查询超时时间间隔。此选取项与QueryTimeout连接属性相对应。空闲(分钟):以分钟为单位指定空闲超时时间间隔。在指定的时间间隔后,活动连接变为不活动。此选项与IdleTimeout连接属性相对应。等待时间(毫秒):以毫秒为单位指定在VFP确定SQL语句是否执行完毕之前经过的时间。此选项与WaitTime连接属性相对应。,返回,.,3.5数据库视图的操作,3.5.1使用视图,退出,3.5.2、显示视图结构,3.5.3、重新命名视图,3.5.4删除视图,3.5.5创建视图索引,3.5.6创建参数化视图,返回,.,3.5.1使用视图,建立视图后,不但可以用它来显示和更新数据,而且还可以通过调整它的属性来提高性能。处理视图类似处理表,可以:使用USE命令并指定视图名来打开一个视图。使用USE命令关闭视图。在【浏览】窗口中显示视图。在【查看】窗口中显示已打开的视图的别名。将视图作为数据源,供表单或表格控件使用。若要使用一个视图,可采取如下方法:在项目管理器中先选择一个数据库,再选择视图名,然后单击【浏览】按钮,在【浏览】窗口中显示视图。使用编程的方式访问视图。下面的代码在【浏览】窗口中显示存放在c:gxglxt目录下gxglxt数据库中的视图1:opendatabasec:gxglxtgxglxtuse视图1,.,browse在使用一个视图时,视图将作为临时表在自己的工作区打开。如果此视图基于本地表,则VFP6会在另一个工作区同时打开基表。如果没有打开任何表,或先执行CloseAll命令后再执行以上命令,则视图1在工作区1打开,而其基表则在工作区2打开。要查看基表,可以通过选择系统菜单上的【窗口】|【数据工作期】打开“数据工作期”窗口。但有一个例外,如果视图是基于远程表,则基表将不在工作区中打开。而只在【查看】窗口中显示远程视图的名称。,返回,.,有时用户只想了解视图的结构,而不关心视图中的数据。这样可以使用带NODATA子句的USE命令来快速显示视图的结构。例如:opendatabasec:gxglxtgxglxtuse视图1nodatain0Select视图1browse通过运行上面的命令语句,将在【浏览】窗口中看到没有记录的视图1。因为使用NODATA子句时,VFP6为视图1创建一个永远返回.F.值的WHERE子句,而数据源上没有记录匹配WHERE子句的条件,所以没有记录被选择。,3.5.2、显示视图结构,返回,.,3.5.3、重新命名视图,建立一个视图以后,还可以为其重新命名视图,进行视图的重新命名,可以使用项目管理器或用RENAMEVIEW命令。在项目管理器中先选择一数据库,再右击要重新命名的视图。单击【重命名】按钮,出现一对话框后即可为视图输入新的名称。使用RENAMEVIEW命令。例如,下面的代码将视图2重新命名为视图1:renameview视图1to视图2说明:在重新命名视图之前,必须打开包含要命名视图的数据库。,返回,.,使用DELETEVIEW命令。例如,如果要删除数据库xsglxt中的视图2,可以键入以下的命令语句:deleteview视图2说明:在删除视图之前,必须打开包含要删除视图的数据库并设置其为当前数据库。,返回,3.5.4删除视图,视图同表一样也是可以删除的,删除视图可以使用项目管理器或使用DELETEVIEW命令。在项目管理器中选择一个数据库,再选择要删除的视图,然后用鼠标右击,单击【移去】按钮,即可删除所选的视图。,.,3.5.5创建视图索引,同为表建立索引一样,也可以为视图建立索引。但与表不同的是,在视图上创建的本地索引不能永久保存,它们随着视图的关闭而消失。为视图建立本地索引,可以使用INDEXON命令。关于该命令的参数,在创建表的索引时已有介绍。另有一点需要注意的是,在决定是否在视图上建立索引时,要考虑视图结果集合的大小。对于一个大的结果集合来说,索引要花费很长的时间,并可能降低视图的性能。因此,要根据实际情况处理。,.,3.5.6创建参数化视图,VFP可以创建具有提示输入值来查询信息的视图,称为参数化视图,这样的视图具有更大的灵活性和更强的适应性。可避免每取一部分记录值就要建立视图的情况。可用以下方法创建参数化视图:(1)打开视图设计器,从【查询】菜单中选择【视图参数】命令,此时系统弹出视图参数对话框,如图,.,(2)在视图参数对话框中输入参数名及其数据类型。此例中建立一个名为“系部代号”的视图参数,此视图参数可以任意取,但数据类型要和所要查询的记录类型一致。参数名可以是字母字符、数字和单引号的任意组合。(3)按下确定按钮,就为此视图建立了一个视图参数了。下面设计一个带参数的视图(视图4):(1)打开“视图设计器”,选定表Classzc、Student、Course和Grade四个表,并选取.Classzc.系部代号、Classzc.班级名称、Student.学号、Student.姓名、Course.课程名、Grade.开课学期、Grade.课程成绩这7个字段名作为输出字段。(2)在“筛选”选项卡中的“字段名”下拉列表框中选择Classzc.系部代号,在“条件”列表框中选定“=”,在“实例”文本框中输入“?系部代号”。这个问号表示引用一个表达式所需要的参数。问号后的文字标识了这个参数的名称。同时还可以设定如“Grade.开课学期=?开课学期”。(3)选择【查询】|【视图参数】,进入“视图参数”对话框,,.,在“参数名”文本框中输入参数名称“系部代号”,在“类型”下拉列表框中选定参数的类型为“字符型”,同样还输入“开课学期”、“字符型”,然后单击【确定】按钮。(4)通过选择【查询】|【运行查询】命令,或通过单击鼠标右键再选择【运行查询】命令,系统弹出如图所示的视图参数对话框。,在此对话框中可以输入将要查询的参数的某一具体数值,在此输入“05”;在后面弹出的“输入一个字符型值,供开课学期使用”对话框中输入第1学期。单击确定按钮,查询的结果即显示在屏幕上。,返回,.,3.6利用视图更新数据,在项目管理器中选择“视图3”,单击【修改】,在视图设计器中选择“字段”选项卡,如图。,返回,.,在上图中,请注意Grade表中的字段。选择“更新条件”选项卡,进行如图设置:,设定关键字段和可修改字段。注意:因为表Grade中每个字段的值都不唯一,所以要用组合关键字(学号+课程代号+开课学期)存档并显示结果。选【文件】|【保存】或从工具栏中单击保存按钮保存此视图。选取菜单【查询】|【运行查询】查看结果,为视图参数输入“04”(带定界符)、“第1学期”后的运行结果如图:,.,修改视图数据。既然我们已经为视图3视图文件设定关键字段与可更新字段,也就是设定了视图文件中哪些字段可以经过修改而自动更正原始数据文件内容,现在就来验证这些设定是否生效。将视图中最后一条记录的“课程成绩”由62改为99。,.,99,在视图中更改此处数据,更改完毕后操作光标离开这条记录,观察Grade表中相关记录变化的情形。,从结果可以看出:Grade表中的学号和课程成绩已随着视图文件的更改而自动修正了。表示我们设定的可更新字段生效。,99,返回,.,3.7利用视图处理自由数据,我们经常需要将一些数据从主数据库中分离出来进行操作,比如在下面的一些情况中:(1)数据大量的存放在一个地方(大型数据库主要由MIS服务器维护),而我们却只对其中某方面的数据感兴趣,比如我们只想了解990520班的学生,就可以构造一个包含相关信息的视图,然后将数据从主数据库中分离出来,使之成为游离数据,允许对其数据进行更新,最后把变动过的数据提交给来源数据库;(2)用于地理位置较远的

温馨提示

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

评论

0/150

提交评论