第1章 数据库系统简介 1
1.1 数据模型 1
1.1.1 层次模型 1
1.1.2 关系模型 2
1.1.3 面向对象模型 3
1.2 Visual FoxPro的主要特点 3
1.3 安装Visual FoxPro 4
1.3.1 系统需求 4
1.3.2 开始安装 5
1.3.3 升级Visual FoxPro 9.0 6
1.4 安装辅助应用程序 6
1.4.1 安装InstallShield Express Limited Edition 6
1.4.2 安装SOAP Toolkit 3.0 Samples 6
1.4.3 安装MSDE 7
第2章 集成开发环境 9
2.1 Visual FoxPro系统界面 9
2.2 Visual FoxPro的菜单体系 10
2.2.1 File(文件)菜单 10
2.2.2 Edit(编辑)菜单 12
2.2.3 View(显示)菜单 14
2.2.4 Format(格式)菜单 15
2.2.5 Tools(工具)菜单 17
2.2.6 Program(程序)菜单 19
2.2.7 Window(窗口)菜单 20
2.2.8 Help菜单 20
2.3 定制Visual FoxPro开发环境 21
2.3.1 Visual FoxPro配置的存储方式 21
2.3.2 交互式环境配置 22
2.3.3 文件式环境配置 22
2.3.4 Visual FoxPro的启动选项 25
2.3.5 定制工具栏 26
2.3.6 窗口停靠 27
2.4 Visual FoxPro辅助开发工具 28
2.4.1 任务窗格管理器 28
2.4.2 工具箱 47
2.4.3 项目管理器 53
第3章 Visual FoxPro语言基础 55
3.1 数据类型 55
3.1.1 数据类型概述 55
3.1.2 Blob数据类型 56
3.1.3 Character与Character(Binary)数据类型 57
3.1.4 Currency数据类型 57
3.1.5 Date/DateTime数据类型 57
3.1.6 Logical数据类型 59
3.1.7 Numeric数据类型 59
3.1.8 Variant数据类型 59
3.1.9 Double数据类型 59
3.1.10 Float数据类型 60
3.1.11 General数据类型 60
3.1.12 Integer与Integer(Autoinc)数据类型 60
3.1.13 Memo与Memo(Binary)数据类型 60
3.1.14 Varchar与Varchar(Binary)数据类型 60
3.1.15 数据类型检测 61
3.2 数据存储容器 62
3.2.1 数据存储容器命名规范 62
3.2.2 常量 63
3.2.3 变量 63
3.2.4 数组 67
3.2.5 字段 70
3.2.6 记录 70
3.2.7 对象 70
3.3 运算符 70
3.3.1 字符运算符 70
3.3.2 日期/时间运算符 70
3.3.3 逻辑运算符 70
3.3.4 数值运算符 71
3.3.5 关系运算符 71
3.3.6 类与对象运算符 71
3.4 表达式 72
3.4.1 字符表达式 72
3.4.2 日期/时间表达式 72
3.4.3 逻辑表达式 72
3.4.4 宏替换表达式 72
3.4.5 名称表达式 73
3.4.6 数值表达式 73
3.4.7 函数表达式 74
3.4.8 表达式类型的相互转换 74
3.5 程序文件的建立与执行 77
3.5.1 建立程序文件 77
3.5.2 执行程序文件 78
3.5.3 程序注释 78
3.5.4 结束程序运行 79
3.5.5 设置程序运行环境 79
3.6 程序结构 80
3.6.1 顺序结构 80
3.6.2 分支结构 80
3.6.3 循环结构 82
3.7 函数与过程 84
3.7.1 系统函数 85
3.7.2 自定义函数 85
3.7.3 过程 86
3.7.4 参数传递机制 87
第4章 创建自由表 91
4.1 建立表结构 91
4.1.1 使用表设计器建立表 91
4.1.2 使用CREATE TABLE-SQL命令建立表 93
4.2 修改表结构 94
4.2.1 使用报表设计器修改表结构 94
4.2.2 使用ALTER TABLE-SQL命令修改表结构 95
4.3 获取表结构信息 96
4.3.1 使用LIST STRUCTURE命令查看表结构信息 96
4.3.2 使用AFIELDS()函数获取表结构信息 97
4.3.3 使用COPY STRUCTURE EXTENDED命令获得表结构信息 98
4.4 复制表 100
4.4.1 复制表结构 100
4.4.2 复制表结构和内容 100
4.4.3 复制其他表内容到当前表 101
4.5 删除表 102
第5章 表的基本操作 103
5.1 打开和关闭表 103
5.1.1 打开表 103
5.1.2 执行表验证 105
5.1.3 关闭表 105
5.2 输入记录 106
5.2.1 使用编辑命令进行数据录入 106
5.2.2 追加记录命令 107
5.2.3 插入记录命令 107
5.2.4 Memo型字段数据输入 108
5.2.5 General型字段数据输入 109
5.3 修改记录 112
5.3.1 REPLACE命令 112
5.3.2 UPDATE-SQL命令 113
5.4 删除记录 113
5.4.1 添加删除标记 113
5.4.2 物理删除记录 115
5.5 输出记录 115
5.5.1 输出到屏幕 115
5.5.2 输出到打印机 116
5.5.3 输出到文件 117
5.6 记录指针 119
5.6.1 记录号 119
5.6.2 移动记录指针 119
5.7 查找记录 120
5.7.1 按顺序查找 120
5.7.2 按索引查找 121
5.7.3 按条件过滤 122
5.8 表统计 122
5.8.1 记录计数 122
5.8.2 数据统计 123
5.9 数据转换 125
5.9.1 数据导出 125
5.9.2 数据导入 127
第6章 表的排序与索引 131
6.1 物理排序 131
6.2 索引类型和索引文件类型 132
6.2.1 索引机制 132
6.2.2 索引类型 132
6.2.3 索引文件类型 133
6.3 建立索引文件 134
6.3.1 建立结构复合索引文件 134
6.3.2 建立独立复合索引文件 136
6.3.3 建立独立索引文件 136
6.4 打开、关闭索引文件 137
6.4.1 打开索引文件 137
6.4.2 关闭索引文件 138
6.4.3 设置、检测主控索引文件或标识 138
6.5 维护索引文件 138
6.5.1 结构复合索引文件的维护 138
6.5.2 独立复合索引文件的维护 139
6.5.3 独立索引文件的维护 139
6.6 删除索引标识 139
6.6.1 删除结构复合索引文件中的索引标识 139
6.6.2 删除独立复合索引文件中的索引标识 140
6.6.3 删除独立索引文件 140
第7章 创建、维护和管理数据库 141
7.1 建立数据库 141
7.1.1 使用项目管理器建立数据库 141
7.1.2 使用CREATE DATABASE命令建立数据库 142
7.2 数据库的基本操作 142
7.2.1 打开数据库 142
7.2.2 向数据库中添加表 144
7.2.3 获取数据库中的表信息 144
7.2.4 从数据库中移去表 145
7.2.5 重命名数据库中的表 146
7.2.6 从数据库中删除表 146
7.2.7 修改数据库 146
7.2.8 多数据库操作 147
7.2.9 关闭数据库 147
7.2.10 删除数据库 147
7.3 数据词典 148
7.3.1 设置长表名和表注释 148
7.3.2 设置长字段名、字段的输入输出格式、标题和注释 149
7.3.3 设置字段的默认值 151
7.3.4 设置字段级和记录级有效性规则 152
7.3.5 存储过程 155
7.3.6 设置触发器 156
7.3.7 建立和删除表间的关系 158
7.3.8 建立参照完整性 161
7.4 数据库事件 163
7.4.1 启用数据库事件 163
7.4.2 数据库事件示例 165
第8章 SELECT-SQL查询 167
8.1 基本的SELECT语句 167
8.1.1 SELECT-SQL命令的语法格式 167
8.1.2 SELECT的子句 168
8.1.3 用户自定义函数 169
8.1.4 SELECT子句中的关键字和其他子句 169
8.1.5 使用宏替换(&) 171
8.1.6 字母大小写 171
8.1.7 使用索引 171
8.1.8 使用ORDER BY子句对查询结果排序 171
8.1.9 聚合函数 172
8.1.10 用GROUP BY求分组小计 172
8.1.11 GROUP BY和DISTINCT之间的区别 173
8.1.12 HAVING子句的使用 173
8.1.13 用TOP子句选择一定数量或一定百分比的记录 175
8.1.14 进行查询输出定向 176
8.2 复杂查询 176
8.2.1 子查询 176
8.2.2 自身连接 178
8.2.3 合并(UNION) 178
8.3 外连接(OUTER JOIN) 180
8.3.1 用右外连接(Right Outer Join)选择记录 180
8.3.2 用左外连接(Left Outer Join)选择记录 180
8.3.3 用完全外连接(Full Outer Join)选择记录 181
8.3.4 用内连接加外连接选择记录 181
8.3.5 用内连接(Inner Join)选择记录 182
8.3.6 用嵌套的连接(Nested Join)选择记录 182
8.4 对SELECT-SQL语言的改进与增强 182
8.4.1 Visual FoxPro的SQL语言兼容性 182
8.4.2 Visual FoxPro 8.0的SELECT-SQL语言行为 183
8.4.3 Visual FoxPro 9.0的SELECT-SQL语言行为 184
第9章 面向对象的程序设计 195
9.1 对象和类 195
9.1.1 对象 196
9.1.2 类 196
9.2 Visual FoxPro的基类 197
9.2.1 基类的类型 197
9.2.2 容器类 199
9.2.3 控件类 199
9.2.4 成员类 200
9.3 使用类设计器建立类 200
9.3.1 创建类 200
9.3.2 为控件或容器类添加对象 201
9.3.3 为类添加成员和定义事件 201
9.3.4 建立属性的Access和Assign方法 204
9.3.5 创建用户自定义类的子类 206
9.3.6 在子类中调用父类的方法或事件 207
9.3.7 指定类的外观 208
9.3.8 将类添加到Form Controls工具栏中 208
9.3.9 修改类定义 209
9.3.10 创建、复制和删除类或类库 209
9.3.11 打开和关闭类库 211
9.4 使用代码建立类 211
9.4.1 编写类定义 212
9.4.2 创建、添加和释放对象 212
9.4.3 编写方法和事件代码 215
9.5 使用对象 216
9.5.1 创建对象引用 217
9.5.2 检查对象是否存在 217
9.5.3 调用对象的属性、方法和事件 217
9.5.4 对象事件的触发顺序 218
9.5.5 对象事件的绑定 219
第10章 表单与表单集 225
10.1 创建表单 225
10.1.1 使用表单设计器创建表单 225
10.1.2 表单设计器的工具栏 225
10.1.3 Form菜单 227
10.2 定制表单 227
10.2.1 定义表单外观 228
10.2.2 定义表单行为 235
10.2.3 为表单添加自定义属性、方法和头文件 238
10.2.4 表单的数据环境 240
10.2.5 表单集 242
10.2.6 使用指定的表单类建立表单 242
10.3 常用表单控件 244
10.3.1 标签(Label)控件 244
10.3.2 线条(Line)控件 247
10.3.3 形状(Shape)控件 249
10.3.4 文本框(TextBox)控件 250
10.3.5 编辑框(EditBox)控件 255
10.3.6 命令按钮(CommandButton)控件 256
10.3.7 命令按钮组(CommandGroup)控件 258
10.3.8 选项按钮组(OptionGroup)控件 259
10.3.9 复选框(CheckBox)控件 263
10.3.10 列表框(ListBox)控件 265
10.3.11 组合框(ComboBox)控件 276
10.3.12 微调(Spinner)控件 282
10.3.13 图像(Image)控件 283
10.3.14 计时器(Timer)控件 286
10.3.15 表格(Grid)控件 288
10.3.16 页框(PageFrame)控件 302
10.3.17 容器(Container)控件 304
10.3.18 延迟控件的数据绑定 305
10.3.19 锚定控件 306
10.4 对键盘和鼠标的响应及控制 307
10.4.1 表单和控件的键盘、鼠标事件 307
10.4.2 程序中的键盘、鼠标控制 310
第11章 菜单与工具栏设计 317
11.1 使用菜单设计器创建菜单 317
11.1.1 认识菜单 317
11.1.2 使用菜单设计器建立一般菜单 317
11.1.3 使用菜单设计器建立快捷菜单 322
11.2 菜单命令 323
11.2.1 建立菜单栏 323
11.2.2 建立菜单标题 325
11.2.3 建立弹出式菜单 326
11.2.4 建立菜单中的菜单项 327
11.2.5 激活菜单栏和菜单 328
11.2.6 常用菜单函数 329
11.3 动态菜单设计 329
11.3.1 动态一般菜单设计 329
11.3.2 动态快捷菜单设计 333
11.4 创建工具栏 335
11.4.1 建立一个工具栏类 335
11.4.2 为表单添加工具栏 335
11.4.3 为Visual FoxPro主窗口加入工具栏 337
11.4.4 建立与菜单协同工作的工具栏 337
11.5 在顶层表单中使用菜单和工具栏 338
11.5.1 将菜单加入到顶层表单中 338
11.5.2 将自定义工具栏加入到顶层表单中 341
第12章 报表与标签设计 343
12.1 报表设计器概述 343
12.1.1 打开报表设计器 343
12.1.2 报表设计器的工具栏 344
12.1.3 报表设计器的菜单 345
12.1.4 报表带区 348
12.2 报表的页面与打印环境设置 349
12.2.1 页面设置 349
12.2.2 打印环境设置 350
12.2.3 查看报表的打印环境设置信息 350
12.2.4 删除报表的打印环境信息 350
12.3 插入报表控件 351
12.3.1 添加字段 351
12.3.2 添加标签 352
12.3.3 添加线条、矩形和圆角矩形 353
12.3.4 添加图片 353
12.4 报表的数据环境设置 354
12.4.1 将数据环境另存为类 354
12.4.2 加载一个数据环境 354
12.5 报表的保护设置 356
12.5.1 保护对象 357
12.5.2 保护带区 357
12.5.3 保护报表 357
12.5.4 使用报表的保护功能 358
12.6 报表的打印控制 358
12.6.1 记录打印范围控制 359
12.6.2 控件打印条件控制 359
12.6.3 总结带区控制 361
12.6.4 获得报表的页码和总页数 362
12.7 报表输出 363
12.7.1 报表输出命令——REPORT FORM 363
12.7.2 指定处理REPORT FORM命令的方式 364
12.7.3 命令示例 365
12.8 数据分组报表设计 366
12.8.1 选择数据分组字段 367
12.8.2 设置页标头 367
12.8.3 设置组标头 367
12.8.4 设置细节带区 367
12.8.5 设置组脚注 368
12.8.6 设置页脚注 369
12.8.7 设置数据表索引 369
12.8.8 保存报表 369
12.9 多细节带区报表设计 370
12.9.1 多细节带区报表中的表和关系 370
12.9.2 为报表指定驱动表 370
12.9.3 建立数据分组 371
12.9.4 建立多细节带区 371
12.9.5 为细节带区指定目标别名 371
12.9.6 多细节带区报表中变量和计算字段的作用域 372
12.10 使用ReportListener建立动态格式化报表 374
12.10.1 Visual FoxPro报表的对象支持架构 374
12.10.2 ReportListener对象的属性、事件和方法 378
12.10.3 Visual FoxPro报表定义文件(FRX)的结构 389
12.10.4 在报表定义文件的USER字段中加入指令 398
12.10.5 建立ReportListener派生类 399
12.11 使用GDI+进行绘图 401
12.11.1 ReportListener的GDI+支持 401
12.11.2 GDI Plus API封装基础类库 402
12.11.3 使用GDI+在表单中绘图 422
12.11.4 使用GDI+在报表中绘图 422
12.12 使用ReportListener以多种格式输出报表 426
12.12.1 XmlListener类 426
12.12.2 HtmlListener类 429
12.12.3 使用ReportOutput.app输出报表到HTML或XML 430
12.12.4 使用ReportListener的OutputPage方法输出报表到TIFF文件中 433
12.12.5 使用ReportListener同时进行多种输出 434
12.13 建立自定义报表预览程序 435
12.13.1 报表预览应用程序接口 435
12.13.2 建立自定义报表预览程序 436
12.13.3 定制Visual FoxPro默认的报表预览程序 440
12.14 图像报表设计 442
12.15 面向对象的程序化报表设计 443
12.15.1 SFReportFile类 444
12.15.2 报表带区 445
12.15.3 字段和文本 446
12.15.4 线条、矩形及图形 447
12.15.5 报表变量 448
12.15.6 程序化建立报表示例 448
12.16 使用MicrosoftExcel和Word打印报表 451
12.16.1 常用Excel对象的OLE控制语句 451
12.16.2 Excel单元格表示形式转换 453
12.16.3 生成Excel表格示例 454
12.16.4 使用Microsoft Word打印报表 455
12.17 Visual FoxPro 9.0 SP2对报表的增强 458
12.17.1 Properties对话框的增强 458
12.17.2 添加自定义属性选项卡 461
第13章 程序易用性设计 465
13.1 “What's This”帮助表单设计 465
13.1.1 创建WinHelp样式的帮助文件 465
13.1.2 建立“What's This”表单 469
13.2 适时信息提示设计 470
13.2.1 使用系统状态栏进行信息提示 470
13.2.2 使用工具提示显示信息 471
13.3 “展开/折起”表单设计 471
13.4 拖放操作设计 472
13.4.1 拖放操作涉及的属性、事件与方法 472
13.4.2 自动拖放 473
13.4.3 手动拖放 474
13.5 复制、粘贴操作设计 474
13.5.1 使用加入系统菜单栏的方法实现复制、粘贴操作 474
13.5.2 使用SYS(1500)函数实现复制、粘贴操作 475
13.5.3 使用_CLIPTEXT系统变量实现复制操作 475
13.6 组合框控件的缺陷修补 475
13.6.1 基于容器类的组合框设计 475
13.6.2 应用示例 477
13.7 表格中的回车方向控制 480
13.8 在表格中使用图片表示数据状态 481
13.9 表格中数据的自定义报表输出 483
13.9.1 建立Header类 483
13.9.2 将建立的Header类添加到表格中 483
13.9.3 建立“页面设置”表单 484
13.9.4 将选定列输出到Excel中 485
13.10 使用索引模仿插入操作 486
13.11 使用页框(PageFrame)控件制作向导 489
13.12 对象的超级链接支持 491
13.12.1 文本框和编辑框的超级链接支持 491
13.12.2 标签等对象的超级链接支持 491
13.13 系统托盘控制 492
13.13.1 快速启动 492
13.13.2 Systray类的属性、方法和事件 493
13.13.3 Systray类的菜单处理 495
13.13.4 Systray类应用示例 496
第14章 查询与搜索设计 501
14.1 Rushmore技术 501
14.1.1 支持Rushmore技术的命令 501
14.1.2 不能使用Rushmore的情况 501
14.1.3 Rushmore的运算表达式限制 502
14.1.4 关闭Rushmore功能 504
14.2 查询设计技巧 504
14.2.1 常用查询界面设计 505
14.2.2 动态筛选查询界面设计 506
14.3 全文本搜索设计 507
14.3.1 文本搜索函数与相关控件属性 507
14.3.2 全文本搜索示例 509
14.4 文件与目录搜索设计 511
14.4.1 递归调用 511
14.4.2 目录搜索设计 512
14.4.3 文件搜索设计 513
第15章 文件与目录、文件夹操作 515
15.1 文件与目录、文件夹操作命令 515
15.1.1 文件操作命令 515
15.1.2 目录、文件夹操作命令 517
15.2 文件和目录、文件夹操作函数 517
15.2.1 文件操作函数 517
15.2.2 目录、文件夹操作函数 520
15.2.3 JUST函数 522
15.3 文件属性设置 523
15.3.1 取得文件属性 523
15.3.2 文件属性设置 526
15.4 低级文件控制 528
15.4.1 低级文件控制函数 528
15.4.2 取得低级文件函数执行的错误码——FERROR() 531
15.4.3 利用低级文件函数实现对数据表的保护 531
15.4.4 利用低级文件函数进行文件分割与合并 532
15.5 文件压缩控制 534
15.5.1 RUN命令 534
15.5.2 文件压缩 535
15.5.3 文件解压缩 536
第16章 位运算和进制转换 537
16.1 位运算 537
16.1.1 按位与——BITAND() 537
16.1.2 按位或——BITOR() 538
16.1.3 按位异或——BITXOR() 538
16.1.4 按位取反——BITNOT() 538
16.1.5 左移位——BITLSHIFT() 538
16.1.6 右移位——BITRSHIFT() 538
16.1.7 设置指定位 539
16.1.8 测试指定位是否为1 539
16.2 进制转换 539
16.2.1 二进制转换为十进制 540
16.2.2 十进制转换为二进制 540
16.2.3 十六进制转换为十进制 541
16.2.4 十进制转换为十六进制 542
16.2.5 十六进制转换为二进制 543
16.2.6 二进制转换为十六进制 544
第17章 OLE控制 547
17.1 ActiveX控件的注册 547
17.1.1 使用Regsvr32.EXE手动注册 547
17.1.2 使用Visual FoxPro环境注册 547
17.1.3 使用安装程序注册 548
17.1.4 使用API函数注册 548
17.2 使用非绑定型ActiveX控件 548
17.2.1 添加ActiveX控件到表单中 548
17.2.2 进度条控件(Microsoft ProgressBar Control) 549
17.2.3 状态栏控件(Microsoft StatusBar Control) 550
17.2.4 滑尺控件(Microsoft Slider Control) 553
17.2.5 MSComm控件(Microsoft Communications Control) 555
17.2.6 日历控件 557
17.2.7 日期挑选器控件(Microsoft Date and Time Picker Control) 559
17.2.8 TreeView控件 562
17.2.9 工具条控件(Microsoft Toolbar) 568
17.2.10 图表控件(Microsoft Chart) 573
17.2.11 格式文本框控件(Microsoft Rich TextBox Control) 581
17.2.12 Microsoft SysInfo控件 591
17.2.13 动画控件(Microsoft Animation) 594
17.2.14 多媒体控件(Microsoft Multimedia Control) 595
17.2.15 WebBrowser控件 600
17.2.16 Winsock控件 608
17.3 使用绑定型Active X控件 618
17.3.1 Microsoft Graph简介 618
17.3.2 将Microsoft Graph嵌入到Visual FoxPro通用字段中 621
17.3.3 向表单中添加绑定型ActiveX控件 622
17.3.4 向报表中添加绑定型ActiveX控件 623
17.4 创建自动服务程序 624
17.4.1 创建自动服务服务程序 624
17.4.2 编译自动服务服务程序 625
17.4.3 注册自动服务服务程序 627
17.4.4 使用自动服务服务程序 628
第18章 XML与Web服务 629
18.1 Web服务基础 629
18.1.1 COM与Web服务 629
18.1.2 松散耦合 630
18.1.3 消息传递格式、服务描述和服务发现 631
18.2 XML、XSL和XSD 632
18.2.1 URI 632
18.2.2 基本XML文档结构 632
18.2.3 XSL 635
18.2.4 XML Schema架构和XSD文档 637
18.3 Visual FoxPro临时表与XML文档的相互转换 639
18.3.1 CURSORTOXML()和XMLTOCURSOR()函数 639
18.3.2 XMLAdapter对象 644
18.4 创建Web服务 658
18.4.1 建立COM服务程序 659
18.4.2 安装并配置Internet信息服务(IIS) 660
18.4.3 创建并发布Web服务 661
18.4.4 在IntelliSense中注册Web服务 662
18.4.5 使用Web服务 663
18.4.6 分发Web服务 665
第19章 共享访问程序设计 667
19.1 控制对数据的访问 667
19.1.1 数据表的打开方式 667
19.1.2 锁定数据 668
19.1.3 数据解锁 671
19.1.4 使用缓冲技术 671
19.1.5 使用数据工作期 673
19.2 更新数据 674
19.2.1 使用缓冲进行更新 674
19.2.2 使用事务处理进行更新 679
19.3 共享访问的优化技术 682
第20章 客户/服务器程序设计 685
20.1 使用远程视图技术 685
20.1.1 建立ODBC数据源 685
20.1.2 建立到ODBC数据源的连接 690
20.1.3 修改、重命名或删除已建立的连接 693
20.1.4 使用视图设计器进行远程视图设计 693
20.1.5 用视图指令和函数进行远程视图设计 705
20.2 使用SPT扩展远程视图 709
20.2.1 连接到服务器 709
20.2.2 获取数据源信息 713
20.2.3 提交查询 715
20.2.4 使SQL pass through结果集合可更新 718
20.2.5 调用存储过程 719
20.2.6 事务处理管理 720
20.2.7 异步处理 721
20.3 离线视图设计 723
20.3.1 建立离线视图 723
20.3.2 编辑离线视图中的数据 724
20.3.3 发送更新离线视图中的数据 724
20.3.4 重新连线到后台数据库 725
20.4 松散耦合连接工具——ursorAdapter 725
20.4.1 CursorAdapter对象的属性 726
20.4.2 CursorAdapter对象的方法 730
20.4.3 CursorAdapter对象的事件 733
20.4.4 使用本地数据源 737
20.4.5 使用ODBC数据源 741
20.4.6 使用ADO数据源 743
20.4.7 使用XML数据源 751
20.4.8 使用类设计器建立CursorAdapter类 759
20.5 常用SQL Server应用开发 760
20.5.1 在SQL Server上建立数据库 761
20.5.2 设置数据库选项 762
20.5.3 在SQL Server上添加、删除用户和设置用户权限 765
20.5.4 备份和恢复SQL Server数据库 773
20.6 SQL DMO应用 775
20.6.1 获取可用的SQL Server数据库服务器名称列表 775
20.6.2 启动和停止SQL Server服务 775
20.6.3 取得服务器上的硬盘目录结构 779
20.6.4 为SQL Server建立作业 782
第21章 使用API函数 785
21.1 使用DLL库 785
21.1.1 调用DLL函数 785
21.1.2 向DLL传递参数 787
21.2 访问FLL库 791
第22章 应用程序的管理与编译 793
22.1 主程序设计 793
22.1.1 主程序设定 793
22.1.2 主程序的编写方法 793
22.2 错误处理程序设计 796
22.2.1 错误捕捉程序设计 797
22.2.2 结构化异常处理 800
22.3 应用程序的调试与跟踪 805
22.3.1 打开调试环境 806
22.3.2 设置调试的跟踪事件 806
22.3.3 调试应用程序 806
22.3.4 设置断点 807
22.4 编译应用程序 808
22.4.1 管理项目管理器中的文件 808
22.4.2 设置项目信息 809
22.4.3 设置在启动时隐藏Visual FoxPro主窗口 809
22.4.4 编译应用程序 810
第23章 建立和调用帮助文档 813
23.1 建立HTML帮助文档 813
23.1.1 HTML帮助文档简介 813
23.1.2 HTML Help Workshop模块功能简介 813
23.1.3 建立目录模块 814
23.1.4 建立索引模块 815
23.1.5 建立和编译项目文件 816
23.1.6 在帮助中建立上下文相关 818
23.1.7 在项目中添加全文本搜索非用词表 819
23.2 调用帮助文档 820
23.2.1 使用HELP命令来调用帮助文件 820
23.2.2 利用API函数打开HTML帮助文档 821
第24章 程序发布 823
24.1 使用InstallShieldExpress创建安装程序 823
24.1.1 建立安装项目 823
24.1.2 使用项目助手 824
24.1.3 定义安装项目属性 824
24.1.4 划分产品功能部件 825
24.1.5 为安装类型指定功能部件 826
24.1.6 添加文件到安装程序 827
24.1.7 选择对象和合并组件 830
24.1.8 建立快捷方式和文件夹 831
24.1.9 建立注册表项 832
24.1.10 建立ODBC数据源名称(DSN) 833
24.1.11 自定义安装界面 834
24.1.12 建立安装程序 836
24.2 Visual FoxPro分发方案 838
24.2.1 Web服务和SOAP 838
24.2.2 使用Visual FoxPro报表应用程序组件 838
24.2.3 Microsoft Visual FoxPro OLE DB Provider 839
24.2.4 ActiveX控件 839
24.2.5 使用HTML帮助 840
24.2.6 使用MDAC组件 840
24.2.7 COM服务器 840
24.2.8 本地化应用程序 840
附录A 函数分类表 843
附录B 命令分类表 855
附录C Visual FoxPro系统变量 865
附录D 系统菜单和菜单选项常数 867
附录E Visual FoxPro变量命名约定 871
附录F Visual FoxPro对象命名约定 873
附录G Visual FoxPro表字段命名约定 875
附录H Visual FoxPro系统容量 877
索引 879