vfp程序设计教程(foxpro数据库编程)

一、重要文件扩展名

.dbc 数据库 .dbf 表 .fpt 表备注 .idx 单索引

.cdx 复合索引 .qpr 查询 .prg 程序 .fxp 编译后的程序

.scx 表单 .vcx类文件 .mnx 菜单 .mpr 菜单程序

.frx 报表 .pjx 项目 .app 应用程序 .exe 可执行程序

.txt 文本文件

二、 关于逻辑假值(.F.)

1.定义一个数组,没有给数组元素赋值,其每个元素取值为逻辑假值;

2.定义一个公共变量,没有给该变量赋值,其值为逻辑假值;

3.定义一个局部变量,没有给该变量赋值,其值为逻辑假值;

4.在参数传递过程中,多余的形参,其值为逻辑假值。

三、关于命令中的“条件子句”

1.只能用在VFP命令中的条件: For 条件 或 While 条件

2.只能用在SQL语句中的条件: Where 条件

四、关于“通配符”的使用

1.只能用在VFP命令中的通配符: *:代替任意多个字符 ?: 代替任意1个字符

2.只能用在SQL语句中的通配符:%: 代替任意多个字符 _: 代替任意多个字符

五、 关于“%”(百分号)的使用

1.求余运算符 如:10%3 表示10除以3的余数

2.通配符 如:select * from 学生 where 姓名 like “王%” 表示在学生表中,查找姓王的学生

在VF中%(百分号)不是表示百分比,要表示百分比时,将其转换成小数。

六、使用SQL语句中的“删除”

1.删除某个文件

如:删除表文件 drop table 表名 删除视图 drop view 视图名

2.删除表中记录

Delete from 表名 [where 条件]

3.删除某个字段

Alter table 表名 drop 字段名

4.删除字段的有效性规则、默认值等

如:删除字段有效性规则 Alter table 表名 alter 字段名 drop check

删除字段的默认值 Alter table 表名 alter 字段名 drop default

七、“运行”文件的命令

1.运行查询 do 查询名.qpr 2.运行程序 do 程序名

3.运行表单 do form 表单名 4.运行菜单 do 菜单程序名.mpr

八、表和数据库

1.数据库和基本表操作命令的比较

(1)创建数据库:creat database 数据库名

(1)建立表:create 表名

(2)打开数据库:open database 数据库名

(3)修改数据库:modify database 数据库名

(4)关闭数据库:close database

(2)打开表:use 表名

(3)修改表:modify structure

(4)关闭表:use

2.索引

索引类型个数字段值是否可以重复
主索引数据库表1
候选索引数据库表、自由表多个
普通索引数据库表、自由表多个
唯一索引数据库表、自由表多个

3.数据完整性:

(1)实体完整性:保证主索引和候选索引的唯一性;

(2)域完整性:表示范围只在数据库中的设置;

(3)参照完整性:描述表与表之间的关系

参照完整性规则包括:更新规则、删除规则和插入规则;

4.工作区:

范围:VFP共有32767 个工作区;select 0表示选定当前还未使用的编号最小工作区

九、SQL语句

SQL是结构化查询语言,核心功能是数据查询。

1.数据定义

(1)建立表create ***

(2)删除表 drop table表名

(3)表结构的修改

添加字段:alter table 表名add 字段名 类型(长度)

删除字段:alter table 表名 drop 字段名

修改字段:alter table 表名 alter 字段名 新类型(长度)

重新命名字段:alter table 表名 rename 旧字段名 to 新字段名

建立有效性规则:alter table 表名(数据库表)alter 字段 set check 字段条件

删除有效性规则:alter table 表名alter 字段 drop check

建立默认值:alter table 表名 alter 字段 set default 条件

删除默认值:alter table 表名 alter 字段 drop default

建立索引:alter table 表名 add 索引类型 字段名 [tag 索引名]

删除主索引:Alter table 表名 drop primary key

删除任意类型的索引:Alter table 表名 drop unique tag 索引名

2.数据操纵

插入 insert into 表名 value

更新 update 表名 set 字段=表达式 where 条件

删除 delete from 表名 where 条件

3.数据查询

基本构成:select 查询什么 from 从哪来 where 查询条件

SQL的六种去向:

(1)保存到永久表:into table/dbf 表名;

(2)保存到临时表:into cursor表名;

(3)保存到数组:into array 数组名;

(4)保存到文本文件:to file 文本文件名

十、视图与查询的比较

1.视图与查询都可以查找满足一定条件的数据;

2.视图和查询自身都不保存数据,它们的查询结果随数据源内容的变化而变化;

3.查询查到的结果不能修改,而视图可以;

4.视图可以更新数据源表,而查询不能;查询有查询去向,而视图没有。

十一、结构化程序设计

1.建立或修改程序的命令:modify command 程序名

2.程序的三大结构:顺序结构、选择结构(分支)和循环结构

3.变量的作用域:

局部变量 LOCAL 只能本程序中被使用;

私有变量 在VFP中是默认的,不需要特殊的关键字定义,可以在当前模块和下层模块中使用;

公共变量 PUBLIC 可用于程序的任意地方,在命令窗口中创建的任何变量自动具有全局属性。

十二、表单

1.基本概念

对象:只要是存在的东西就认为是对象;

类:对象生成的模板;类的特征:

(1)层次性

(2)继承性 子类不但继承父类的事件、属性、方法,而且有自己的事件、属性、方法

(3)封装性;

对象与类的关系:类是对象一般化,抽象化;对象是类的具体化,实例化

2.表单属性:

Caption 表单标题; Name 表单名称;Alwaysontop 是否永远居上;Autocenter 自动居中;Backcolor 背景色; Borderstyle 边框样式;Picture 背景图片; Maxbutton 设置表单最大化按钮;Movble 设置表单是否可移动;Showwindow 是否作为顶层表单; Windowtype 表单窗口风格设定;Height 表单高度; Width 表单宽度;Icon 表单最小化的图标等

3.标签属性:

Autosize 自动调整字体大小;Alignment 对齐方式(默认为左);Backstyle 标签背景是否透明;Top 标签离表单顶部的距离;Enable 标签是否可用;Visible 标签是否可见 Fontbold 标签文本是否为粗体;Fontitalic 标签文本是否为斜体 ;Fontname 标签文本字体设置;Fontsize 标签文本字体大小;Fontunderline 标签文字是否带下划线;Forecolor 标签字体颜色 ;Wordwrap 标签是横排/竖排

4.文本框属性

Passwordchar 输入占位符;Value 返回文本框当前内容; Inputmask 模式符等

5.编辑框属性

Readonly 是否为只读;Scrollbars 是否有垂直的滚动条

6.命令按钮属性

Cancel当用户按ESC时,“取消”按钮的click事件是否发生;

default 按下回车键时,哪个按钮做出响应。

7.选项按钮组属性

Buttoncount指定命令按钮个数;value判断哪个按钮被选中

8.列表框属性

Rowsourcetype 数据值的来源类型 ;Rowsource 数据值的来源;List 数据条目列表;Listcount 数据的条目数;Selected 是否处于选顶状态;Multiselect 是否为多选; Columncount 列表框的列数

9.组合框属性

style组合框的样式;Rowsourcetype 数据值的来源类型;Rowsource 数据值的来源

10.页框属性

Pagecount统计页的数目

11.表格属性

Rowsourcetyp数据值的来源类型;Rowsource 数据值的来源

12.计时器属性

Intenval设置间隔,毫秒为单位

13.常用事件:

init 在用户建立对象时引发;click 在单击鼠标左键时引发;error 在发生错误时引发 ablclick 在双击鼠标左键时引发;load 在表单对象建立之前引发; unload 在表单对象释放时引发;rightclick 在单击鼠标右键时引发;interactivechange 通过鼠标和键盘交互操作改变一个控件值时引发

load 先于init ;destroy先于unload;

如果一个表单建立一个命令按钮,先引发表单的load事件,再引发命令按钮的load 事件,最后引发表单的init事件;

如果关闭一个含有命令按钮的表单,先引发表单的destroy事件,再引发命令按钮的destroy事件,最后引发表单的unload事件。

14.常用方法

thisform release  关闭(释放)表单;show显示当前表单;hide隐藏当前表单

十三、 报表设计

1.报表包括两个基本组成部分:数据源和布局。

数据源通常是数据库中的表,也可以是视图、查询或临时表。

2.默认情况下,“报表设计器”显示三个带区:页标头、细节和页注脚。

3.常用控件

标签 用于保存不希望用户改动的文本;

域控件 创建一个字段控件,用于显示表字段、内存变量或其他表达式的内容;

图片/ ActiveX 绑定控件 用于显示图片或通用数据字段的内容。

4.报表预览:report form 报表名 preview