计算机VFP实验9 创建本地视图和远程视图
在VFP中用远程视图实现数据的安全性

在VFP 中用远程视图实现数据的安全性周松 秦嘉杭 周晓飞(南京财经大学 计算机系,南京210003)摘 要:本文介绍了Visual FoxPro 中远程视图的功能和使用方法,并提出了一种利用远程视图,解决Visual FoxPro 中数据安全性的问题。
关键词:Visual FoxPro ;远程视图;安全性Realizing the Data Security by Using Remote View in VFPZhou Song Qin Jiahang Zhou Xiaofei(Dept. of Computer, Nanjing University of Finance & Economics, Nanjing 210003, China)Abstract:The authors illustrate the function and usage of remote view in Visual FoxPro. Taking advantage of remote view, they provide a solution to the data security in Visual FoxPro.Key Words:Visual FoxPro; remote view; security——————————————————VFP 是微软公司出品的关系数据库产品。
支持网络、多媒体、约束和触发器,提供了面向对象的功能,并内镶有SQL 语言。
VFP 还提供有如向导、设计器、生成器等许多工具,用户利用这些工具可以方便快速地生成功能强大的表单、菜单、查询和视图等。
由于VFP 简单易用,功能强大,并且和FOXPRO 、FOXBASE 兼容,在国内有着大量的用户。
但是,VFP 不支持数据的安全性,在安全性要求较强的应用领域使用VFP 有一定的困难。
不过,利用VFP 中的远程视图功能,将数据存放到其它有数据安全功能的数据库中,如ACCESS 的数据库,来解决这一问题。
视图的创建与应用教案

《数据库visual foxpro》教案教学内容:视图的创建与应用教学目标:1、掌握视图的创建方法及步骤2、培养提高学生逻辑思维能力以及分析、解决问题的能力教学重点:视图的创建方法教学难点:利用视图设计器创建本地视图教学过程:(一)复习1、数据库表关系的建立2、设置参照完整性(二)导入新课由怎样同时进行多表浏览引入(三)新课教学1、视图的定义:视图是Visual FoxPro提供的一种定制的、可更改的数据集合。
它是一个定制的虚拟表,为用户提供了一种浏览、使用Visual FoxPro表中数据的有力工具。
2、视图的特点:视图是程序和表的组合,视图是不能单独存在的,它依赖于某一数据库且依赖于某一数据表而存在,是基于数据库的,不是“图”,而是观察表中信息的一个窗口,相当于定制的浏览窗口。
3、视图的分类:本地视图和远程视图。
4、启动视图设计器的方法:方法一:在“文件”菜单,单击“新建”,选中“视图”方法二:在“项目管理器”中方法三:在“数据库设计器”。
方法四:用命令方式 create view5、多媒体操作利用视图设计器创建本地视图。
例一:根据xsda数据库,创建一个单表本地视图“学生表视图”,视图中包含“学号”、“姓名”、“性别”、“入学总分”4个字段内容。
按学号升序排列步骤:(1)打开数据库文件“xsda.dbc”,进入“数据库设计器”窗口。
(2)打开“新建”菜单,选择“视图”项。
(3)单击“向导”,进入“本地视图向导——步骤1-字段选取”窗口。
(4)在该窗口中,可以从几个表或视图中选取字段。
(5)条件筛选(6)排序:选择“学号”作为索引字段,并按“升序”排列。
(7)单击“完成”,输入创建视图的名称“学生表视图”,单击“确认”(8)视图可以像表一样进行操作,如双击它的窗口可以进入“浏览”窗口;或者采用打开“数据库”菜单,选择“浏览”选项,进入视图“浏览”窗口。
6、学生思考下例再演示例二:根据数据库xsda.dbc,创建一个多表本地视图“多表视图”,要求该视图中包含“学号”“姓名”“出生日期”“专业号”“专业名称”6个字段,这些字段来自于表xsqk.dbf和zymc.dbf7、利用视图更新数据(四)课堂小结1、视图是一张虚表,不能单独存在2、视图保存在数据库中,要打开视图须先打开该数据库(五)布置作业P105-106 一、1、8、9 二、1、7、9、10。
vfp实验报告 实验九 创建视图(视图设计器 )

实验九创建视图一、实验内容1.启动"视图设计器":(1)在项目管理器中选择"全部"或"数据"选项卡,选择"本地视图",单击"新建"按钮,单出"新建本地视图"对话框。
在"新建本地视图"对话框中单击"新建视图"按钮,进入"视图设计器"窗口,与"查询设计器"窗口相比较,除了多了个"更新条件"选项卡之外,其他都是相同的.2.添加表:步骤如下(1)打开"视图设计器"窗口后,弹出"添加表或视图"对话框。
(2)在该对话框中,选中要添加的表,单击"添加"。
比如添加学生表。
①"字段"选项卡:在"查询设计器"中,选择"字段"选项卡, 在"可用字段"列表中列出了查询数据环境中选择的数据表的所有字段;在"选定字段"框中设置在查询结果中要输出的字段或表达式;"函数和表达式"框用于建立查询结果中输出的表达式."选定字段"框中行的顺序就是查询结果中列的顺序. ②"联接":进行多表查询时,需要把所有有关的表或视图添加到查询设计器的数据环境中,并为这些表建立联接.这些表可以是数据表,自由表或视图.当向查询设计器中添加多张表时,如果新添加的表与已存在的表之间在数据库中已经建立永久关系,则系统将以该永久关系作为默认的联接条件.否则,系统会打开"联接条件"对话框,并以两张表的同名字段作为默认的联接条件。
联接类型说明内部联接两个表中的字段都满足联接条件,记录才选入查询结果联接条件左边的表中的记录都包含在查询结果中,而右边的表中的记录只有满足联左联接接条件时,才选入查询结果联接条件右边的表中的记录都包含在查询结果中,而左边的表中的记录只有满足联右联接接条件时,才选入查询结果完全联接两个表中的记录不论是否满足联接条件,都选入查询结果③筛选:查询既可查询所有记录,也可以查询所有满足条件的记录.指定选取记录的条件可使用"查询设计器"的"筛选"选项卡。
实验九 视图的创建与使用

实验九视图的创建与使用(一)实验目的1、理解视图的概念。
2、掌握创建视图、测试、加密视图的方法。
3、掌握更改视图的方法。
4、掌握用视图管理数据的方法。
实验内容及步骤一、实验内容:使用企业管理器和查询分析器创建、管理视图。
二、实验步骤:1、用T-SQL语言创建、管理视图(1)创建视图1)创建一个名为stud_query_viewl的水平视图,从数据库JWGL的student表中查询出性别为“男”的所有学生的资料。
USE JWGLGOCREATE VIEW stud_query_viewlASSELECT * FROM studentWHERE sex =’男’2)创建一个名为stulquery_view2的投影视图,从数据库JWGL的student表中查询出性别为“男”的所有学生的学号,姓名,性别,系别和年龄等资料。
USE JWGLGOCREATE VIEW stud_query_view2ASSELECT sno AS 学号,sname AS 姓名,ssex AS 性别, sdept AS 系别,sage AS 年龄FROM studentWhere ssex = ‘男’WITH CHECK OPTION /*强制视图上执行的所有修改语句*/ 必须符合由select语句设置的准则*/3)创建一个名为“stud_query__view3”的视图,它是由表course、sc创建的一个显示选修了“数据库”这门课的学生的成绩的视图。
USE JWGLGOCREATE VIEW stud_query__view3WITH ENCRYPTIONASSELECT ame AS 课程名,cname as 课程号,sno AS 学号,grade as 成绩FROM sc, courseWHERE o=o AND course=‘数据库’)4)创建一个从视图stud_query_viewl中查询出系别为IS的所有男学生的视图。
VFP实验报告

实验报告学院:专业:年级:姓名:学号:实验室号:计算机号:实验日期:年月日指导教师签字:成绩:报告退发 (订正、重做)实验一:熟悉VFP开发环境(验证性,3学时)一、实验目的1.熟悉VFP集成开发环境;2.项目管理器的使用;3.常用命令的使用;二、实验内容1.在硬盘上新建一个以自己学号命名的文件夹,并将此文件夹设置为默认目录.要使此设置关闭VFP系统后再进入VFP系统时仍然有效该如何保存?2.设置日期格式为年月日格式,年份四位数显示和两位数显示如何设置,以短划线”-”作为日期分隔符,要使以上设置关闭VFP系统后再进入VFP系统时失效该如何保存?3.如何将现在小数点后只保留2位改成保留更多的位数?4.定制工具栏操作:如何将调色板工具栏里的红色添加到常用工具栏里?5.在默认目录下建立“学生成绩管理”项目文件和“学生成绩”数据库.分别在项目中建立数据库和不在项目中建立数据库,比较他们的区别;6.观察上述第5题的操作过程中命令窗口中出现的命令,并指出各命令的作用;7.退出VFP系统的命令是什么?有哪些方法可以退出VFP系统?三、实验环境1.硬件:学生用微机、局域网环境2.软件:Windows 2000中文操作系统、Visual Foxpro 6.0四、实验步骤(描述实验的具体操作步骤和方法,内容见后附的手写材料)五、实验调试与结果分析(描述实验的调试过程,实验中发生的现象、中间结果、最终得到的结果,并进行分析说明,分析可能的误差或错误原因等.内容见后附的手写材料)六、总结(说明实验过程中遇到的问题及解决办法;新发现或个人的收获;未解决/需进一步研讨的问题或建议新实验方法等.内容见后附的手写材料)实验一:熟悉VFP开发环境1. 先在D盘建一个文件夹,并将其命名为092221004.在桌面打开VFP系统,在菜单栏上选择“工具”“选项”,此时跳出一个选项框,选定“文件位置”中的“默认目录”,然后选择“修改”,将其设为“D\092221004”,最后选择“设为默认值” ,“确定”,即可.2. 在桌面打开VFP系统,在菜单栏上选择“工具”“选项”,此时跳出一个选项框,选定“区域”,然后在“日期格式”栏的下拉选项中选择“年月日”;勾选“日期分隔符”和“年份(1998或98)”项,并在“日期分隔符”其后面输入“-”;最后选择“设为默认值” ,“确定”,即可.3. 在桌面打开VFP系统,在菜单栏上选择“工具”“选项”,此时跳出一个选项框,选定“区域”,然后在“小数位数”项输入小数位数的多少,最后选择“设为默认值” ,“确定”,即可.4. 在桌面打开VFP系统,在菜单栏上选择“显示”,此时跳出一个工具栏对话框,勾选“调色板”后选择右边的“定制”,跳出定制工具栏,在“分类”中选定“调色板”,在其右边中选定红色,并将其拖动到主窗口,关闭定制工具栏,最后将其移到常用工具栏下.5. 打开VPF系统,在菜单栏上选择“文件”,在“文件”的下拉栏中选定“新建”弹出新建选框,在左边的“文件类型”中选定“项目”然后点击右边的“新建文件”弹出创建的对话框,在该对话框的项目文件框中键入“学生成绩管理”后点击“保存”.在菜单栏上选择“文件”,在“文件”的下拉栏中选定“新建”弹出新建选框,在左边的“文件类型”中选定“数据库”然后点击右边的“新建文件”弹出创建的对话框,在该对话框的数据库名框中键入“学生成绩”后点击“保存”.区别: 如果是在项目中建立数据库,则命令窗口不会显示命令.6. “CREATE PROJECT”是建立项目文件命令,“CREATE DATABASE”是建立数据库命令,“ MODIFY DATABASE”打开默认目录下的数据库,“MODIEF PROJECT”是打开默认目录下的项目文件7. 退出VFP系统的命令是“Quit”;其他退出VFP系统的方法:方式一:单击应用程序窗口中的“关闭”按纽.方式二:在“文件”菜单中选择“退出”命令.方式三:在命令窗口中键入QUIT命令.方式四:同时按下Alt和F4组合键.方式五:单击应用程序窗口左上角的控制菜单图标,从弹出的菜单中选择“关闭”命令.或者双击控制菜单图标.实验报告学院:专业:年级:姓名:学号:实验室号:计算机号:实验日期:年月日指导教师签字:成绩:报告退发 (订正、重做)实验二:数据类型、函数和表达式(验证性,3学时)一、实验目的1.VFP变量的使用;2.VFP函数的使用;3.VFP表达式的使用;二、实验内容1.熟悉内存变量的命名规则,举例说说正确的内存变量名和不正确的内存变量名,并在命令窗口中加以测试;2.测试两种内存变量的赋值命令(=和STORE),分别给变量赋以不同数据类型的值,用type函数测试其数据类型;3.分别定义一个一维数组和二维数组,并用type函数测试数组元素未赋值时的数据类型及察看未赋值数组元素的值;给同一数组的不同的数组元素赋以不同数据类型的值;4.测试常用的系统函数的用法并观察其结果(有关表的函数除外);5.测试不同数据类型数据为空的值(即用EMPTY()函数进行测试);6.设X=3,Y=10,求Ln|-y|+e xy(1-y)的值;设a=3,b=5,c=2,求ax2+bx+c=0的根;7.求以下逻辑表达式中各个关系表达式的值,并求出逻辑表达式的值:“Z”>[z].AND.(’ABCLL’=‘ABC’.OR.3^2!=LEN([VISUAL FOXPRO]) ) 三、实验环境1.硬件:学生用微机、局域网环境2.软件:Windows 2000中文操作系统、Visual Foxpro 6.0四、实验步骤(描述实验的具体操作步骤和方法,内容见后附的手写部分)五、实验调试与结果分析(描述实验的调试过程,实验中发生的现象、中间结果、最终得到的结果,并进行分析说明,分析可能的误差或错误原因等.内容见后附的手写部分)六、总结(说明实验过程中遇到的问题及解决办法;新发现或个人的收获;未解决/需进一步研讨的问题或建议新实验方法等.内容见后附的手写部分)实验二:数据类型、函数和表达式1. 输入 temp=”How are you?”输入”use 20 to A”?temp 跳出”命令中含有不能识别的短语或关键字”How are you2. 在命令窗口中输入①命令格式一②命令格式二Temp=2*3+5-8 store 0 to X1 X2 Y1 Y2?temp ?X1,X2,Y1,Y25 0 0 0 0?type(’temp’) 所以其数据类型为数值型N3.一维数组:DIMENSION X(3) 二维数组:DIMENSION a(2,3)未赋值时: dimension x(3) 未赋值时: dimension a(2,3)?type (’x(3)’) ?type (’a(2,3)’)L 所以是逻辑型 L赋值时: dimension x(3) 未赋值时: dimension a(2,3)x(1)=2 a(2,3)=’world’x(2)=4 ?a(2,3)store x(1)+x(2) to x(3) world? x(3)64.字符整理函数 ?LEN(’’HELLO’’) 5 C的长度系统测试函数 ?FILE(”student.dbf”) 测试制定文件是否存在数值型函数 ?ABS(-2,0) 2.0 绝对值5.? Empty (0) T6. ① x=3 ② a=3y=10 b=5? loy(abs(-y))+exp(x*y)*(1-sqrt(y)) c=2-23107125253585,2800 ?sqrt (a*(x^2)+b*x+c)6.637.关系表达式逻辑表达式? ”Z”>[z] 例. ”Z”>[z].AND (’ABCLL’=’ABC’.OR.3^2.T. =LEN([VISUAL FOXPRO])? 3^2!=LEN([VISUAL FOXPRO]) .T..T. (’ABCLL’=’ABC’.OR.3^2!=([VISUALFOXPRO])实验报告学院:专业:年级:姓名:学号:实验室号:计算机号:实验日期:年月日指导教师签字:成绩:报告退发 (订正、重做)实验三:表与数据库的基本操作(验证性,6学时)一、实验目的1.数据库的建立,表的建立;2.表的完整形约束、数据库和表的打开关闭;3.表记录的插入、修改和删除;4.表记录的显示以及记录的定位;5.记录的排序,单索引和复合索引的建立,索引的使用方法;6.多工作区的使用,表间关联的建立.二、实验内容1.在“学生成绩”项目中建立“学生成绩”数据库;在学生成绩数据库中建立“学生”、“成绩”、“课程”三个数据库表并输入一些相应的数据;在“学生成绩”项目中建立自由表 ABC.dbf;并将这些表从项目中移出或移入;2.对“学生”表设置如下的约束(字段有效性):学号不能为空,为空时提示信息:“必须输入学号”、奖学金的默认值为200;对课程表设置如下约束(记录有效性):课时>=学分*20;3.对上述三个数据库表进行数据增加、删除(包括逻辑删除和物理删除)和修改操作;4.用菜单的方法进行表记录的定位,指出什么是当前操作记录;5.将学生表的学号设定为主索引,升序排列;成绩表的学号和课程号作为普通索引,在表中要有一个学生有多门课的成绩、多个学生有同一门课的数据的条件下试试这两个字段能否作为主索引;课程表的课程号作为主索引,降序排列并对该表察看索引结果;对学生、成绩、课程三个表建立永久性关系;6.用命令对学生表的学号建立独立索引文件、对成绩表的学号建立非结构化复合索引文件;7.利用数据工作期建立学生表、成绩表和课程表的关联,使得指针在“学生”表的浏览窗口中移动时,在“成绩”的浏览窗口中同步显示与该学号有关的成绩信息、在“课程”表的浏览窗口中同步显示该生相应成绩的课程名的纪录.三、实验环境8.硬件:学生用微机、局域网环境9.软件:Windows 2000中文操作系统、Visual Foxpro 6.0实验三:表与数据库的基本操作1.(1)打开“学生成绩”项目,选定“数据库”后点击右边的“新建”,弹出“新建数据库”对话框,然后选择“新建数据库”,在“创建”对话框中的数据库名中键入“学生成绩”,最后保存.选定“学生成绩”数据库下拉栏中的“表”后点击右边的新建,弹出“新建表”对话框,然后选择“新建表”弹出“创建”对话框,在该框的输入表名栏中键入“学生”后保存,用同样的方法分别建立“成绩”“课程”表.依次选定“学生”“成绩”“课程”表点击右边的“修改”,然后在弹出的对话框中依次分别输入一下数据(2)打开“学生成绩”项目,选定“数据库”下拉栏下的“自由表”后点击右边的新建,弹出“新建表”对话框,选择“新建表”后在弹出的对话框的输入表名栏中输入“ABC”并保存,后在该表随便输入数据后“确定”.要移出则选定该自由表后选择右边的“移去”即可.2.(1) 先选定“学生”表选择右边的“修改”在弹出的表中选择“学号”后选定在“字段有效性”下“规则”后面的,此时弹出“表达式生成器”在该对话框中的“字段”下选定“学号”,在”逻辑”的下拉中选定“<>”,此时在“有效性规则”下的框中有“学号 <>”,然后在此后面加上引号(注意:引号必须是在无输入法的情况下输入),最后选定“确定”(2)先选定“课程”表选择右边的“修改”在弹出的表中选择“课时”后选定在“字段有效性”下“规则”后面的,此时弹出“表达式生成器”在该对话框中的“字段”下选定“课”,在”逻辑”的下拉中选定“>=”,此时在“有效性规则”下的框中有“课时 >=”,然后在此后面加上“学分*20”最后选定“确定”3. 打开“学生表”,点击“显示”菜单中的追加方式,便可对数据进行增加进入表“浏览”窗口,点击“删除”标记栏被逻辑的记录就加上了“删除”标记,如要恢复则点击“删除”标记栏;物理删除:先对删除的记录做逻辑删除,选择“表”“菜单”“彻底删除”,在“系统”中选“是”则记录将被彻底删除在“项目管理器”中选择要修改的表名,单击“修改”,进到“表设计器”进行修改4.在“浏览”窗口中选择“表”的转到记录,即可将指针移动到相应的记录上5.(1)在项目管理器学生成绩点击学生表→显示→表设计器→索引→在索引名处输入"学号"→类型输入主索引→排序为升序→确定(2)以同样的方法将成绩表和课程表进行设置(3)打开数据库设计器在学生表中找到学号→按住学号拖到成绩表中的学号→按住课程表中的课程号→拖到成绩表的课程号中永久关系建立6.(1)在项目管理器学生成绩中选中学生表→在命令窗口输入"Index on 学号To 文件名"→按 Enter键(2)在项目管理器学生成绩中选中学生表→在命令窗口输入"Index on学好TAG文件名→按 Enter键7.窗口数据工作期→别名处点击学生关系→别名处点击成绩→表达式生成器→确定→别名处点击课程关系→关闭窗口实验报告学院:专业:年级:姓名:学号:实验室号:计算机号:实验日期:年月日指导教师签字:成绩:报告退发 (订正、重做)实验四:查询与视图(验证性,6学时)一实验目的1.顺序查询和索引查询的基本方法2.求和,平均数、分类汇总等统计方法3.使用查询设计器建立查询4.用SQL命令完成各种数据库操作二实验内容1.掌握顺序查询命令Locate和索引查询命令seek的使用方法,并针对student表,举例说明之;2.掌握求和命令SUM、求平均值命令AVERAGE的使用方法;并针对student表按专业统计奖学金总和和按学生性别统计奖学金平均值;3.用查询设计器建立查询文件INQUA.QPR.根据表student.dbf和grade.dbf,查询“计算机”专业中男生的各门课程(即要按课程号分组)的平均成绩,显示字段依次为“课程号”和“平均成绩”两列,以两表中的学号字段进行内部连接,,并要求按课程号的升序显示;4.利用set relation 命令建立表间临时关系:子表为student.dbf,父表为grade.dbf,要使得当浏览父表的纪录时子表中相应的记录会跟着联动;并且在命令窗口中输入如下命令观察结果:brow field 学号,student.姓名,student.专业,课程号,成绩5.用SQL命令实现如下查询(在实验步骤中写出相应的命令,在调试和结果分析中对该命令的各个部分进行解释):(1)查询Student表中所有的学生信息;(2)查询Student表中计算机专业的学生的最高奖学金、最低奖学金和平均奖学金;(3)对Student表按专业统计奖学金,即查询按专业分组的各专业的奖学金总和(提示:select 专业,sum(奖学金) as 奖学金合计……)(4)从student表和grade表中查询学生的学号、姓名、课程号、成绩;(5)从student表、grade表和course表中查询学生的学号、姓名、课程名、成绩(提示:……from student,grade,course where student.学号=grade.学号 .and. grade.课程号=course.课程号);实验四:查询与视图1、(1)在学生表中查询定位1981年出生的学生记录在命令窗口输入:USE 学生LOCATE ALL FOR YEAR (出生日期)=1981?RECNO(),FOUND(),EOF()CONTINUE?RECNO(),FOUND(),EOF()(2)在学生表中索引查询金融专业学生的姓名在命令窗口输入:USE 学生INDEX ON 专业 TAG 专业索引SEEK”金融”?姓名2、(1)在学生表中统计计算机专业学生奖学金的总和(2)在学生表中统计男生的平均奖学金在命令窗口分别输入:sum奖学金for专业=”计算机”to奖学金总和average奖学金for性别=.t. to平均奖学金3、(1)在VFP中点击文件→新建→查询→新建文件;(2)在添加视图或视图对话框中选择“学生和“成绩”表→添加→在“连接条件”对话框中单击确定;(3)选择“字段”选项卡在“可用字段”列表框中选取“成绩.课程号”并添加到“选定字段”列表框中.单击“函数和表达式”右侧按钮→在“表达式生成器”对话框生成函数中输入“AVG(成绩.成绩)”→单击确定→在“字段”选项卡中添加到“选定字段”列表框中;(4)选择“筛选”选项卡→选定字段名“学生.专业”、条件“=”,并输入实例“计算机”、逻辑“AND”→选定字段“学生.性别”、条件“=”,并输入实例“.T.”;(5)选择“排序依据”选项卡→在“选定字段”列表框中选取“成绩.课程号”并添加到“排序条件”列表框中;(6)选择“分组依据”选项卡→在“选定字段”列表框中选取“成绩.课程号”并添到“分组字段”列表框;(7)在“查询”菜单中选择“查询去向”→在“查询去向”对话框中选择查询结果的输出去向→“浏览”;(8)单击常用工具栏上的“运行”按钮就可以得到查询结果;(9)保存查询,键入查询文件;(10)关闭查询设计器,结束查询设计4、在命令窗口输入:OPEN DATABASE学生成绩SELECT()UAE学生 ALL AS 学生INDEX ON 学号 TAG学号索引SELECT()USE 成绩SEL RELATION TO 学号 INTO 学生BROWSE FIELDS学号,学生.姓名,学生.专业,课程号,成绩5、(1)SELECT*FROM 学生(2)SELECT MAX(奖学金)AS 最高奖学金;MIN(奖学金)AS最低奖学金;AVG(奖学金)AS平均奖学金;FROM学生WHERE专业=“计算机”(3)SELECT专业,SUM(奖学金)AS奖学金合计FROM学生GROUP BY专业(4)SELECT学生.学号,学生.姓名,成绩.课程号,成绩.成绩FROM学生INNER JION成绩ON学生.学号=成绩.成绩.(5)SELECT学生.学号,姓名,成绩.课程名,成绩;FROM学生,成绩,课程;WHERE学生.学号=成绩.学号 AND 成绩.课程号=课时.课程号实验报告学院:专业:年级:姓名:学号:实验室号:计算机号:实验日期:年月日指导教师签字:成绩:报告退发 (订正、重做)实验五:程序设计基础(验证性,4学时)一实验目的1.选择结构程序设计2.循环结构程序设计3.过程和自定义函数的定义与调用二实验内容1.编写一段利用Messagebox()函数的程序,按钮类型为“是”、“否”、“取消”,图标为询问,默认按钮是“取消”,提示信息为“你真的要进行此操作吗?”,当按下“是”时,系统给出“你选择的是“是”;当按下“否”时,系统给出“你选择的是“否”;当按下“取消”时,系统给出“你选择的是“取消””.这些系统给出的信息也用Messagebox()函数实现,只要一个确定按钮,每次按确定后即退出该程序;2.应用循环结构的命令编写一段程序,运行时在VFP主窗口输出如下图形:****************3.IIF()函数的语法为:IIF(逻辑表达式,表达式1,表达式2)功能:如果逻辑表达式的值为真,则返回表达式1的值,否则返回表达式2的值.和以下程序等价的IIF()函数要如何写(提示:用Y=IIF(逻辑表达式,表达式1,表达式2)的形式表达,其中表达式1或表达式2也可以是IIF()函数)?IF X>0Y=1ELSEIF X=0Y=0ELSEY=-1ENDIFENDIF4.编写一个求面积的程序,其中求各种面积(三角形((底*高)/2)、梯形((上底+下底)*高/2)、圆(3.14*半径^2)、正方形(边长*边长)、矩形面积(长*宽))的过程用过程文件保存,通过主程序调用这些过程文件中的过程实现面积的求解;5.理解参数传递中的按值传递和按地址传递的区别:有以下两个主程序和一个外部过程(文件名为SUBPRG):第一个主程序如下(文件名为AA.PRG)CLEARA=”您好!”DO SUBPRG WITH A? A第二个主程序如下(文件名为BB.PRG)CLEARA=”您好!”DO SUBPRG WITH (A) &&与AV.PRG不同之处就是这里的括号)? A外部过程如下(文件名为SUBPRG):PARAMETER X? XX=”谢谢关照”RETURN分别运行上面的主程序,并察看其结果,说说结果为何不同.6.理解变量作用域:运行以下程序并分析结果.CLEARX=10Y=20DO SUB? X , YRETURNPROCEDURE SUBPRIVATE XX=100Y=30? X , YENDPROC7.编写一个求阶乘的自定义函数,并求1!+2!+3!+…+10!的值.三实验环境1.硬件:学生用微机、局域网环境2.软件:Windows 2000中文操作系统、Visual Foxpro 6.0四实验步骤(描述实验的具体操作步骤和方法,内容见后附的手写部分)五实验调试与结果分析(内容见后附的手写材料)六总结(内容见后附的手写材料)实验五:程序设计基础1、在VFP中点击新建程序新建文件在程序1中输入如下程序:ClearX=messagebox(“你真的要进行此操作吗?”,3+32+512)If x=6Messagebox(“你按下的是“是””)ElseIf x=7Messagebox(“你按下的是“否””)ElseMessagebox(“你按下的是“取消””)EndifEndif2、在程序中输入如下程序:ClearSt=”*******”K=4Do while k>=1?space(4-k)+left(st, 2*k-1)K=k-1End do5. 在程序中输入:Procedure pinput“请输入三角形的高度:”to shinput“请输入三角形的底长:”to sds=sd*sh/2?“三角形的面积:”??sReturnEndprocProcedure tinput“请输入梯形的上底:”to tuinput“请输入梯形的下底:”to tlinput“请输入梯形的高度: to ths=(tu+tl)*th/2?“梯形的面积:”??sReturnEndprocProcedure yinput“请输入圆的的半径:”to yrs=3.14*yr^2?“圆的面积:”??sReturnEndprocProcedure zinput“请输入正方形的边长:”to zx s=x*x?“正方形的面积:”??sReturnEndprocProcedure jinput“请输入矩形的长:”to jxinput“请输入矩形的边宽:”to jys=x*y?“矩形的面积:”??sReturnEndproc7、依次计算1!、2!、3!…..10!在程序中输入如下程序:ClearFor i=1 to10?”fac(“+str(1, 2)+”)=”,fac(i) Endforreturnfunction facparame ters nprivate ip=1for i=1 to n p=p*iendforreturn pendfuncs=0t=1for i=1 to 10 t=t*is=s+tendfor?”s=”, sreturn实验报告学院:专业:年级:姓名:学号:实验室号:计算机号:实验日期:年月日指导教师签字:成绩:报告退发 (订正、重做)实验六:表单控件和面向对象程序设计(综合性,6学时)一实验目的1.表单设计器的操作2.事件的编写3.表单向导的使用4.表单及常用控件(文本框、组合框、列表框、页框等等)的设计二实验内容1.(1)新建一个表,表名为:七律长征.dbf,表的字段只有一个:诗词,字段的长度、数据类型自己根据实际内容确定,每条记录的内容为该诗的一句;(注:诗词为:红军不怕远征难,万水千山只等闲.五岭巍峨腾细浪,乌蒙磅礴走泥丸.金沙水拍云崖暖,大渡桥横铁索寒.更喜岷山千里雪,三军过后尽开颜.)(2)新建一个表单,外形如图:Form1的标题为七律长征;label1的标题为“请背诵毛主席的诗《七律长征》”;label2的标题为“忘记时可点击以下按钮将给出提示”;文本框一个,要求首次运行时不能出现任何诗句(提示:采用在Form1的init 事件中编写如下代码的方法加以实现:go bottom↙ skip,这里↙表示按下Enter键);用命令按钮组做四个命令按钮,第一个按钮的标题是“首句”,第二个为“上一句”,第三个为“下一句”,第四个为“末句”;(3)要求运行时点击“首句”按钮则文本框会出现该诗的第一句,点击“上一句”按钮,则文本框显示当前诗句的上一句(如果记录指针指向第一条记录,则画面上要给出提示:“本局是首句”),点击“下一句”按钮,则文本框显示当前诗句的下一句(如果记录指针指向最后一条记录,则画面上要给出提示:“本局是末句”),点击“末句”按钮则文本框会出现该诗的最后一句.表单保存为:七律长征.scx.2.设计如图所示的表单:要求如下:(1)运行时,当按下按钮1时,按钮1的Enabled属性变为.F.,按钮2的Enabled属性变为.T.;反过来,当按下按钮2时,按钮2的Enabled属性变为.F.,按钮1的Enabled属性变为.T..(2)根据对象引用的规则,要采用到如下这些引用:this.enabled,mandx.enabled(x代表1或2),mandx.enabled(x代表1或2)(3)指出容器控件及容器嵌套层次3.通过表单向导,建立一个一对多表单,以查询学生选修的课程和成绩:其中,父表为student.dbf,子表为grade.dbf.4.新建表单cjcx.scx,界面如下图,要求如下:(1)表单Form1的数据源是grade.dbf,表单上有标签、文本框、按钮、表格等控件,表格中共三列,如上图所示;(2)该表单完成按学号的查询,请编写适当代码实现在点击“查询”按钮后,表格Grid1中显示对应查询学号的各门课程的成绩,文本框Text2中显示对应的平均成绩.5.设计一个迎接2008年北京奥运会倒计时的表单界面如下:Form1的标题为“2008北京奥运会倒计时”,运行时居中;Label1的标题为“今天距北京奥运会开幕还有”,字体为宋体,字号为16,加粗;Text1为只读,字号为16,加粗;Label2标题为“天”,字体为宋体,字号为16,加粗.运行时直接将显示距2008北京奥运会开幕所剩的天数.(提示:2008北京奥运会开幕的日期为2008年8月8日,利用两日期相减,可求出这两个日期之间的天数的方法计算,可将该计算过程写在Form1的Init事件中.思考一下:如果将该过程写在Form1的Load事件中行不?)6.设计一个时钟,画面如下:Form1的标题为“日期时间”,运行时居中;Label1的标题为 =ttoc(datetime()) ,注意要有等号(其中TTOC()函数是将日期时间类型的数据转换成字符型的数据的函数);在表单上添加一个时钟控件;要求运行时时钟会按秒变化.(提示:在时钟控件的Timer事件中编写如下过程:bel1.caption=ttoc(datetime()),Timer1控件的Interval属性设为1000.该属性是指定调用计时器事件的间隔,以毫秒为单位,1000即为1秒,正是题目所要求的)7.表单Form1上有一朵花的图像,单击表单的空白处,该图象将移到单击处.请编写相应的事件代码.8.设计如下的表单:从组合框中选择用户,组合框的数据源为account.dbf的“user”字段;输入密码,输入时不能显现出密码,只能用*代替;单击“确定”时,如果密码正确,则弹出“欢迎登录”消息框,否则弹出“口令不正确,请再试一次”消息框,如果口令三次都不正确,则自动退出该表单(每个用户的密码已经事先存放在account.dbf表的password字段中).account.dbf的内容:三实验环境3.硬件:学生用微机、局域网环境4.软件:Windows 2000中文操作系统、Visual Foxpro 6.0四实验步骤(描述实验的具体操作步骤和方法,内容见后附的手写部分)五实验调试与结果分析(内容见后附的手写材料)六总结(内容见后附的手写材料)。
VFP+SQL-动态创建远程视图

* cKey---主键
* cCondition---条件
* 调用格式:
* =CreateView(\'数据库名\',\'连接名\',\'后端表名\',\'视图名\',\'主键名\',\'条件\',\'排序\')
* 第一步、创建视图
ENDIF
* 第二步、设置视图可更新
* 1).Tables 属性
DBSETPROP(\'&cViewName\',\'View\',\'Tables\',\'&cSQLTableName\')
* 2).KeyField 属性(将字段"cKey"设定成关键字栏)
DBSETPROP(\'&cViewName..&cKey\',\'Field\',\'KeyField\',.T.)
*nConnectHandle=SQLSTRINGCONNECT(\'DSN=&gcDSN;UID=&gcUID;PWD=&gcPWD;DATABASE=&cSQLDatabaseName\')
* 参见《Visual FoxPro 6.X 中文版程序设计》p.431
* 11.12 取得后端字段的相关信息
DBSETPROP(\'&cViewName..&cFieldName\',\'Field\',\'Defaultvalue\',\'0\') && 默认值
Visual FoxPro数据库程序设计教程(第三版) 第9章 查询与视图
2019年3月9日
9.1.3 视图与查询比较 视图与查询的相同点在于: 它们都可以从数据源中查找满足一定筛选 条件的记录和选定部分字段;他们自身都 不保存数据,其查询结果随数据源内容的 变化而变化。
2019年3月9日
第6页
视图与查询的不同点: (1)视图可以更新数据源表,而查询不能。用户可以显 示但不能更新由查询检索到的记录;但当编辑视图中的记 录时,可以将更改发送回源表,并更新源表。 (2)视图是数据库中的一个特有功能,它只能存在于数 据表中,因此只能从数据库中查找数据;而查询是一个独 立的程序文件,不是数据库的组成部分,它可以从自由表、 数据库表以及多个数据库的表中查找数据。 (3)视图可访问远程数据,而查询不能直接访问,需要 借助远程视图才能访问。
2019年3月9日
第8页
9.2.2 通过查询设计器创建查询 SELECT命令可以在命令窗口直接执行, 也可以编写在程序中,以完成相应查询任 务。但编写SELECT语句不是件易事。为 了可视化设计SELECT命令,系统提供了 “查询设计器”。“查询设计器”实际上 就是SELECT命令的交互式设计操作。 1.启动“查询设计器”添加表
第14页
2019年3月9日
9.3 运行查询
运行查询可以得到查询结果。方法有以下3种。 (1)在“查询设计器”处于打开状态时,使用 “查询”菜单的“运行查询”命令。 (2)命令:DO <查询文件名>。 (3)快捷键:【Ctrl+Q】。 上述操作的过程实际上是创建了一条SQL的 SELECT语句。可以选择“查询”菜单中的“查 看 SQL”或查询设计器工具栏上的SQL按钮,得 到结果如图9-37所示。
计算机VFP实验9创建本地视图和远程视图
计算机VFP实验9创建本地视图和远程视图实验9 创建本地视图和远程视图实验目的:1.了解视图的含义以及视图与查询的区别;2.学会创建视图,并设置更新条件。
一、(可以省略该步)新建一个项目,名字为“成绩管理”,在该项目中建立一个数据库“学生成绩库”,并在该数据库中建立两个表“学生表”和“成绩表”,每个表都输入几条记录。
其中:学生表:二、以上面建立的“学生表”为数据源创建本地视图步骤如下:1、在项目管理器中,选择“数据”选项卡,单击某个具体数据库,接着单击本地视图新建。
2、把“学生表”添加到“视图设计器”窗口中3、字段选定:选择全部字段4、更新条件:学号设置为主键,并设置所有字段都是可更新的(即铅笔对应列都打“√”)5、在“视图设计器”窗口中的左下角“发送SQL更新”前打“√”。
6、保存视图,运行视图,修改“张三”为“张六”,关闭视图结果,再保存视图。
然后推出视图。
7、打开“学生表”查看其数据“张三”是否有变化三、创建远程视图:1、启动ACCESS,创建一个空数据库“管理库”,在该数据库中建立一个“职工表”,“职工退出ACCESS。
2、在第一大题的项目中的“学生成绩库”下建立一个连接(操作方法:展开“成绩管理”项目,找到“学生成绩库”,点击“学生成绩库”左边的“+”,点击“连接”→新建,→出现如下窗口,把“数据源(D)”:选择“MS Access Database”→点击“验证连接”→找到以上所建立的Access数据库“管理库”→确定→保存;这样就建立好了一个连接(这个连接的作用是,让VFP数据库连接到Access数据库)。
3、以ACCESS表“职工表”为数据源,创建远程视图,并设置更新条件,设置“职工号”为主键,设置所有字段都可以更新。
运行视图。
4、修改视图的结果,然后关闭视图结果,保存视图5、退出VFP,打开ACCESS数据库“管理库”,打开表“职工表”查看表中数据的变化。
vf部分教程
实验一建立项目管理器、建立数据库和表、输入部分数据一、实验目的1.熟悉V isual Foxpro 项目管理器的使用;2.熟悉数据库的概念和V isual Foxpro 数据表的概念;3.掌握数据表的建立方法,数据直接输入的方法;4.熟练掌握表文件的打开、浏览、关闭。
二、实验内容;1.建立项目管理器“学生成绩管理系统”2.建立数据库“成绩库”,并创建4个与学生成绩管理系统工作密切相关的数据表“班级号名”、“学生”、“学生选课”、“课程”;3.直接为“班级号名”、“课程”两个数据表输入数据。
三、实验步骤(一)Visual Foxpro 基本操作1. Visual Foxpro 的启动开始→程序→ Visual Foxpro 6.0,或:双击桌面V isual Foxpro 6.0 快捷方式图标。
2. Visual Foxpro 的退出在V isual Foxpro 的命令窗口中键入q uit 或选V isual Foxpro 菜单中文件→退出。
3.工作目录及表单区域的设置·在机房的学生数据盘(例如D:盘)上建一目录,命名为“成绩管理”。
·进入V isual Foxpro,选菜单中的工具→选项→“文件位置”选项卡,找到“默认目录”,如图1-1。
图1-1 选择默认目录·点击“修改”按钮,进入图1-2,再单击按钮,按图1-2 设置后,单击“确定”按钮。
·单击“表单”选项卡,将“最大设计区”选为 1024×768。
·单击“设置为默认值”按钮,再单击“确定”按钮。
注意:如果学生机房安装了还原卡,则每次上机或重新启动后都要重新进行以上第3步“工作目录及表单区域的设置。
”图1-2 更改文件位置(二)项目管理器和数据库的建立1.项目管理器(1)什么是项目管理器项目管理器是V isual Foxpro 开发应用系统的综合性平台,在这里可以建立数据库、表单、菜单、程序、编译等。
VF数据库第9章视图与查询操作
精选ppt
5
(3)命令说明:
① <新文件名>是指重新排列后的新数据表文件名.
② 排序规则:
排序关键字,仅能使用当前数据表的字段名,不允许使
用任何类型表达式。字段类型可以是C型、N型、D型、L
型。
如果选择多个字段作为关键字段来进行多重排序,之间
要用英文状态下的逗号“,”分隔。排在最前面的为第一
关键字段,最先排序,第一关键字段值相同,则按第二关
[ASCENDING|DESCENDING] 说明: [OF<非结构复合索引文件名>]:非结构复合索引文件名
例题:
将学生档案表数据表文件按班级和出生日期(索引标识为
BJCSRQ )升序,按性别升序索引(索引标识为XB),建立非
结构化复合索引文件xbbj。
Use 学生档案表
INDEX ON 班级+dtoc(出生日期) TAG BJRQ OF XBBJ
或非压缩的。压缩的单索引文件是非压缩的单索引文件的 六分之一,所以,如果没有兼容问题,一般采用压缩的单 索引文件。
精选ppt
10
(2)复合索引文件(*.CDX) 复合索引文件可以含多个索引标识,其扩展名为“CDX”,
每个索引都有一个索引标识。 复合索引文件为减少占用存储空间,其总是以压缩方式存
储。 复合索引文件可分为结构的和非结构的两种。 结构化复合索引文件与原数据表文件名相同(后缀
说明: ①TAG<索引标识名>:复合索引文件每个索引都必须有一
个索引标识。 ②记录的顺序默认为升序,也可用“Ascending”表示,
降序用“Descending”。 ③当一个复合索引文件中存在多个索引标识的时候,分别
建立,最新建立的索引标识将自动打开并处于主控索引的 位置。 ④ 建立结构化复合索引文件,必须以独占方式打开数据表.因 为,结构化复合索引的标识精符选pp要t 保存到表的结构中去。 18
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验9 创建本地视图和远程视图
实验目的:
1.了解视图的含义以及视图与查询的区别;
2.学会创建视图,并设置更新条件。
一、(可以省略该步)新建一个项目,名字为“成绩管理”,在该项目中建立一个数据库“学生成绩库”,并在该数据库中建立两个表“学生表”和“成绩表”,每个表都输入几条记录。
其中:学生表:
二、以上面建立的“学生表”为数据源创建本地视图
步骤如下:
1、在项目管理器中,选择“数据”选项卡,单击某个具体数据库,接着单击本地视图 新建。
2、把“学生表”添加到“视图设计器”窗口中
3、字段选定:选择全部字段
4、更新条件:学号设置为主键,并设置所有字段都是可更新的(即铅笔对应列都打“√”)
5、在“视图设计器”窗口中的左下角“发送SQL更新”前打“√”。
6、保存视图,运行视图,修改“张三”为“张六”,关闭视图结果,再保存视图。
然后推出视图。
7、打开“学生表”查看其数据“张三”是否有变化!!!!
三、创建远程视图:
1、启动ACCESS,创建一个空数据库“管理库”,在该数据库中建立一个“职工表”,“职工
退出ACCESS。
2、在第一大题的项目中的“学生成绩库”下建立一个连接(操作方法:展开“成绩管理”项目,找到“学生成绩库”,点击“学生成绩库”左边的“+”,点击“连接”→新建,→出现如下窗口,把“数据源(D)”:选择“MS Access Database”→点击“验证连接”→找到以上所建立的Access数据库“管理库”→确定→保存;这样就建立好了一个连接(这个连接的作用是,让VFP数据库连接到Access数据库)。
3、以ACCESS表“职工表”为数据源,创建远程视图,并设置更新条件,设置“职工号”为主键,设置所有字段都可以更新。
运行视图。
4、修改视图的结果,然后关闭视图结果,保存视图
5、退出VFP,打开ACCESS数据库“管理库”,打开表“职工表”查看表中数据的变化。