茂名职业技术学院1授课-4自由表(图书表)操作4.1常量与变量4.2图书表的创建与操作本课先介绍一些重要概念和基本知识,包括:数据类型、常量、变量、数组。只有正确地理解和掌握这些重要概念和基本知识,才能正确地使用命令,完成表与数据库的有关操作。之后,再介绍有关图书表的创建和记录追加操作。茂名职业技术学院2【任务(上机4)】新建文件夹VFTS###,将C:\2006vfp\DATA2文件夹中的两个电子表格文件复制到文件夹VFTS###中,并在此文件夹中新建项目管理器,命名为“项目TS”,并完成下列操作。1.创建自由表(1)图书表(TSB.DBF)表结构:TSB(编码C(6)候选索引,书号C(10),书名C(36),作者C(10),出版社C(10),单价N(6,2),数量N(2,0))(2)读者表(DZB.DBF)表结构:DZB(读者号C(3)候选索引,姓名C(8),部门C(8),电话C(11))(3)借阅表(JYB.DBF)表结构:JYB(图书编码C(6)普通索引,读者号C(3)普通索引,借书日期D,还书日期D)茂名职业技术学院32.为TSB.DBF、DZB.DBF添加记录(1)直接在表中添加记录。(2)使用命令将表TSB.DBF中的数据删除,再将电子表格TSB.XLS中的数据导入到表TSB.DBF。导入数据后的TSB.DBF如T01A所示。(3)使用命令将表DZB.DBF中的数据删除,再将电子表格DZB.XLS中的数据导入到表DZB.DBF。导入数据后的DZB.DBF如T01B所示。茂名职业技术学院4T01AT01B茂名职业技术学院54.1常量与变量【学习目标】掌握常量和变量的格式【关键概念】不同类型常量的表示方法数组的定义与赋值茂名职业技术学院64.1.1常量(P57)常量是具体的固定不变的数据。有:N、C、D、T、L、Y等6种类型。1.数值型常量整数、小数和科学计数法表示的数据为数值型常量,可以是整数或实数。例如:-196,3.1415926535,0.2831E+2茂名职业技术学院74.1.1常量(P57)2.字符型常量可印刷的字符,包括英文字母、阿拉伯数字、各种符号、汉字和空格等。VisualFoxPro中字符型常量是用双引号、单引号或方括号等定界符括起来的字符串。例如:'Internet网络',Computer,[61643.04]VisualFoxPro中字符串的长度(字符个数)最大为254。当字符串常量中含有定界符时,则需要用另一种定界符括起来。例如:[I'mastudent]茂名职业技术学院83.逻辑型常量逻辑型常量只有两个值:“真”和“假”.T.,.t.,.Y.或.y.表示“真”.F.,.f.,.N.或.n.表示“假”4.日期型常量用花括号括起来的、符合约定的符号串。严格的日期格式为:{^yyyy-mm-dd}例如:{^2004-07-11}空白日期可表示为{}注意:VisualFoxPro默认使用严格的日期输入格式,如果要使用通常的日期格式,必须执行命令:SETSTRITO0此时可使用{mm-dd-yy}、{yy/mm/dd}等日期格式若要设置严格日期格式必须用命令设定:SETSTRITO1另外,设置日期分隔符:SETMARKTO“-”P59茂名职业技术学院95.日期时间型常量用花括号括起来符合VisualFoxPro约定的符号串。严格的日期时间格式为:{^yyyy/mm/ddhh[:mm[:ss]][a|p]}例如:{^2004/07/1111:12:30p}日期与时间数据之间必须用空格分隔6.货币型常量货币型常量以$或¥符号开头,并四舍五入到小数点后4位。无科学记数法形式。例如:$88.1696,¥288应为半角字符茂名职业技术学院104.1.2变量(P60)在命令操作和程序运行过程中其值允许变化的量。有:内存变量字段变量1.内存变量用来存储程序运行的中间结果或用于存储控制程序执行时的各种参数。茂名职业技术学院114.1.2变量(1)内存变量命名规则以字母(汉字)或下划线开头,由字母(汉字)、数字或下划线组成,最多128个字符,不可与系统保留字同名。例如:Student_No,图层编号1注意:一个汉字占用两个字符位置。系统内存变量以“_”开头,如“_VFP”。系统变量是VisualFoxPro自动生成和维护的系统内存变量,它们都以下划线开头,用于控制外部设备(如打印机、鼠标等),屏幕显示格式,或处理有关计算器、日历、剪贴板等方面的信息。用户给变量命名最好不要以“_”开头。茂名职业技术学院12(2)内存变量赋值赋值格式1:内存变量=表达式计算等号右边表达式值,并将结果赋给等号左边的内存变量赋值格式2:STORE表达式TO内存变量表计算表达式值,并将结果赋给内存变量表中的每一个变量[例3-1]定义内存变量c_no,a1,a2,a3。在命令窗口键入如下命令:c_no=N101STORE2*4TOa1,a2,a3[例3-2]内存变量计数器X=X+1各变量之间用逗号分隔茂名职业技术学院13(3)内存变量的显示命令格式:?|??表达式表功能:计算表达式的值,并将结果显示在屏幕上。?表示从屏幕下一行开始显示??表示从当前行的当前列开始显示说明:也可以用:LISTMEMO或DISPMEMO[例3-3]显示例3-1所定义变量的值。单个的内存变量是最简单的表达式,可以用上述命令来显示变量的值。?c_no?a1??a2,a3各表达式之间用逗号分隔茂名职业技术学院14(3)内存变量的显示LIST|DISPLAYMEMORY[LIKE通配符][TOPRINTER[PROMPT]|TOFILE文件名]显示当前已经定义的变量(包括内存变量和系统变量)名、作用范围、类型和值。(1)命令格式中[]的内容可以省略,称为选项。(2)LIKE子句选项表示选出与通配符相匹配的变量,通配符有?和*两种,?代表单个字符,*代表一个或多个字符。[例3-3]显示例3-1中建立的内存变量,执行如下命令:DISPMEMOLIKE????茂名职业技术学院15主窗口显示下列内容:c_noPubCN101a1PubN8(8.00000000)a2PubN8(8.00000000)a3PubN8(8.00000000)选项TOPRINTER子句将内容输出到打印机,使用PROMPT选项则能提供是否要打印的提示窗口。选项TOFILE文件名子句将内容存入文本文件。例如:LISTMEMORYLIKE????TOFILEVARITYPEVARI.TXT茂名职业技术学院16(4)内存变量的保存、恢复、清除从内存变量保存到指定的内存文件SAVETO内存文件名[ALLLIKE/ALLEXCEPT通配符]从指定的内存文件将内存变量恢复到内存ADDI表示只覆盖原内存中的同名变量RESTOREFROM内存文件名[ADDI]从内存清除指定的内存变量。EXCEPT子句清除与通配符不相匹配的内存变量。RELEASE[内存变量表][ALL[LIKE通配符]|[EXCEPT通配符]]【重点】例如:RELEc_no,a1RELEALLLIKEa2*RELEALLEXCEPTa?RELEALL茂名职业技术学院172.数组P62数组(Array)是按一定顺序排列的一组变量,数组中的各个变量称为数组元素。(1)数组的定义数组在使用前必须先定义。DIMENSION|DECLARE数组名(下标1[,下标2])[,数组名(下标1[,下标2])……]功能:定义一维或二维数组,以及下标的上界.例如,DIMENSIONa(10)定义一个一维数组a,其具有10个元素。对于二维数组,通常将第一个下标称为行标,第二个下标称为列标。例如,DIMENSIONb(3,4)定义二维数组b,其具有3行4列共12个元素。各下标的下界为1茂名职业技术学院18(2)数组的赋值和引用①数组定义时,每个元素的初值均默认为.F.。②STORE命令和赋值符号“=”既可以为数组赋值,也可以为其元素赋值。[例3-5]数组定义和赋值。DIMEa(10),b(3,4)a=0STORE6TObb(1,2)=VisualFoxPro③二维数组各元素在内存中按行的顺序存储,因此二维数组的元素可当作一维数组元素来存取数据。例如,二维数组b(3,4),其中b(2,3)在存储位置占第7位,所以也可以用b(7)来引用同一数组的不同元素可以存放不同类型的数据茂名职业技术学院19(3)数组与记录的互相转赋P63①将表的当前记录复制到数组。SCAT[FIEL字段名表][MEMO][TO数组名][BLAN]②将数组数据复制到表的当前记录。GATHFROM数组名[FIEL字段名表][MEMO][例3-6]将ZGB表中的5号记录与7号记录交换位置。USEZGBBROWGO5SCATTOAGO7SCATTOBGATHFROMAGO5GATHFROMBBROWUSE这个方法很重要,应熟练掌握。茂名职业技术学院203.字段变量字段是包含在数据库表文件记录中的数据项,不但不同记录的同一字段可以取不同值,而且同一记录的同一字段,在不同时刻也可取不同的值。因此字段是一个变量,称之为字段变量。注意:字段的类型和宽度是在创建表结构时定义的,要改变只有通过修改表的结构来实现。字段变量的赋值不能通过赋值语句进行,它的值在表数据录入时输入,也可用REPL命令来修改。内存变量常简称为变量,而字段变量则简称为字段茂名职业技术学院214.2图书表的创建与操作【学习目标】创建图书表图书表的数据录入【关键概念】创建表的命令追加记录的命令茂名职业技术学院22任务的第1点操作示范:1.创建自由表(1)图书表(TSB.DBF)表结构:TSB(编码C(6)候选索引,书号C(10),书名C(36),作者C(10),出版社C(10),单价N(6,2),数量N(2,0))操作:方法一:使用前面介绍的利用表设计器进行创建。方法二:使用命令:CREATABLED:\TSB.dbf(编码C(6)candidate,书号C(10),书名C(36),作者C(10),出版社C(10),单价N(6,2),数量N(2,0))P114:主索引候选索引普通索引惟一索引茂名职业技术学院23任务的第2点操作示范:2.为TSB.DBF、DZB.DBF添加记录:方法一:利用快捷键CTRL+Y为表添加记录。方法二:使用菜单中的导入功能进行电子表格的转换。方法三:使用命令,如下:BROWSEDELETEALLPACKAPPENDFROMTSB.XLSTYPEXL5BROWSEGOTOPDELETE&&导入的记录第一行为字段名,应删除。PACKDZB.DBF的创建和添加方法同上。茂名职业技术学院24【小结】常量:数值型、字符型、逻辑型、日期型、日期时间型、货币型。变量:由字母或汉字开头,由字母、数字、汉字、下划线组成。内存变量的操作:赋值、显示、保存、恢复、清除。数组:定义、赋值、记录和数组的数据的相互复制。定义表:CREATABLE……从电子表追加记录:APPENDFROM电子表名.XLSTYPEXL5返回本课目录茂名职业技术学院25【作业】1、上机4**2、预习4-3排序与索引