1、Visual FoxPro,第四章,Visual FoxPro数据库及其操作,Visual FoxPro,数据库的建立和操作,包括建立和管理数据库、建立和使用表以及索引和数据完整性等方面的内容。 4.1.1 基本概念 数据库扩展名为dbc的文件名,与之相关的还会自动建立一个扩展名为dct的数据库备注 (memo)文件和一个扩展名为dcx的数据库索引文件。 这三个文件是供Visual FoxPro数据库管理系统管理数据库使用的,用户一般不能直接使用这些文件。 扩展名为dbf文件称做数据库表 4.1.2 建立数据库 建立数据库的常用方法有以下三种: 在项目管理器中建立数据库; 通过“新建“对话框建
2、立数据库; 使用命令交互建立数据库。,4.1 数据库及其建立,Visual FoxPro,CREATE DATABASE DATABASENAME|? 使用命令建立数据库后不打开数据库设计器,只是数据库处于打开状态,即紧跟着的后续命令不必再使用OPEN DATABASE 命令来打开数据库。 4.1.3 使用数据库 建立表或使用数据库中的表时,都必须先打开数据库 . 在项目管理器中打开数据库; 通过“打开“对话框打开数据库; 使用命令打开数据库。,Visual FoxPro,OPEN DATABASE DATANAME|?EXCLUSIVE|SHAREDNOUPDATE VALIDATE 用DA
3、TANAME要打开的数据库名,可以缺省数据库文件扩展名dbc,如果不指定数据库名或使用问号,则显示“打开“对话框。EXCLUSIVE:以独占方式打开,即不允许其他用户在同一时刻也使用该数据库。SHARED:以共享方式,即允许其他用户在同一时刻使用该数据库。默认的打开方式由SET EXCLUSIVE ON|OFF的设置值确定,系统原默认设置为ON。NOUPDATE:按只读方式打开,即不允许对数据库进行修改,默认的打开方式是读/写方式,即可修改。VALIDATE:检查在数据库中引用的对象是否合法,例如检查数据库中的表和索引是否可用,检查表的字段或索引的标记是否存在等。注意: 这里的NOUPDATE
4、选项实际并不起作用,为了使数据库中的表是只读的,需要在用USE命令打开表时使用NOUPDATE。 当数据库打开时,包含在数据库中的所有表都可以使用,但是这些表不会自动打开,使用时需要用USE命令打开。 当用USE命令打开一个表时,Visual FoxPro首先在当前数据库中查找该表,如果找不到,Visual FoxPro会在数据库外继续查找并打开指定的表 .,Visual FoxPro,在同一时刻可以打开多个数据库,但在同一边刻只有一个当前数据库。 指定当前数据库的命令:SET DATABASE TO DatabaseName SET DATABASE TO 将使得所有打开的数据库都不是当前数
5、据库而言。(注意:所有的数据库都没有关闭,只是都不是当前数握库) 4.1.4 修改数据库 在建立数据库时建立了扩展名分别为dbc、dct和dcx的三个文件,用户不能直接对这些文件进行修改。在Visual FoxPro中修改数据库实际是打开数据库设计器,用户可以在数据库设计器中完成各种数据库对象的建立、修改和删除等操作。,Visual FoxPro,三种方法打开数据库设计器: 从项目管理器中打开数据库设计器; 从“打开“对话框中打开数据库设计器; 使用命令打开数据库设计器。MODIFY DATABASE DatabaseName|?NOWAITNOEDIT 参数说明 : NOWAlT:该选项只在
6、程序中使用,在交互使用的命令窗口中无效。 NOEDIT:使用该选项只是打开数据库设计器,而禁止对数据库进行修改。,Visual FoxPro,4.1.5 删除数据库 从项目管理器中删除数据库(是dbc文件,而不是dbf文件 )。直接选择要删除的数据库,然后单击命令按钮“移去” 移去:从项目管理器中删除数据库,但并不从磁盘上删除相应的数据库文件; 删除:从项目管理器中删除数据库,井从磁盘上删除相应的数据库文件; 取消:取消当前的操作,即不进行删除数据库的操作。Visual FoxPro的数据库文件并不真正含有数据库表或其他数据库对象,只是在数据库文件中登录了相关的条目信息,表、视图或其他数据库对
7、象是独立存放在磁盘上的。所以不管是“移去”还是“删除”操作,都没有删除数据库中的表等对象 。 使用命令方式删除数据库时同时删除表等对象: DELETE DATABASE DatabaseName|? DELETETABLESRECYCLE 参数 :DatabaseName:给出要从磁盘上删除的数据库文件名,此时要删除的数据库必须处于关闭状态 。 DELETETABLES:选择该选项则在删除数据库文件的同时从磁盘上删除该数据库所含的表 (DBF文件)等。 RECYCLE:选择该选项则将删除的数据库文件和表文件等放入Windows的回收站中,如果需要的话,还可以还原它们。,Visual FoxPr
8、o,4.2.建立数据库表,4.2.1 在数据库中建立表 在数据库中建立表最简单和直接的方法就是使用数据库设计器。 1.字段名 汉字或合法的西文标识符。自由表字段名最长为10个字符;数据库表字段名最长为128个字符。 字段名必须以字母或汉字开头。 字段名可以由字母、汉字、数字和下划线组成。 字段名中不能包含空格。 2.字段类型和宽度字符型:可以是字母、数字等各种字符型文本。 货币型:货币单位,如货物的价格。 数值型:整数或小数。 浮点型:功能上类似于“数值型“,其长度在表中最长可达20位。,Visual FoxPro,日期型:由年、月、日构成的数据类型。 日期时间型:由年、月、日、时、分、秒构成
9、的数据类型,如员工上班的时间。 双精度型:双精度数值类型,一般用于要求精度很高的数据。 整型:不带小数点的数值类型。 逻辑型:值为“真“(.T.)或“假“(.F.) 备注型:不定长的字符型文本,如用于存放个人简历等;它在表中占用4个字节,所保存的数据信息存储在以dbt为扩展名的文件中。 通用型:用于标记电子表格、文档、图片等OLE对象 (对象链接与嵌入),它在表中占4个字节。 字符型(二进制):同“字符型“,但是当代码页更改时字符值不变,如某种二进制代码字符或其他语言代码等。代码页是供计算机正确解释并显示数据的字符集,通常不同的代码页对应不同的平台或语言。 备注型(二进制):同“备注型”,但是当代码页更改时备注不变。 3.空值 “NULL“选项,它表示是否允许字段为空值。比如作为关键字的字段是不允许为空值的,而那些在插入记录时允许暂缺的字段值往往允许为空值。,Visual FoxPro,4.字段有效性组框 定义字段的有效性规则、违反规则时的提示信息和字段的默认值,介绍见4.5.2。 5.显示组框 定义字段显示的格式、输入的掩码和字段的标题。,