第一篇 错误原因分析与错误排除方法 1
1.1 建立数据库CREATE命令使用不当的出错应如何处理 3
1.2 修改数据库文件结构时为什么会引起数据的丢失,如何恢复被丢失的数据 6
1.3 为什么在DIR命令中与LISTSTRUCTURE命令中显示出的记录数不一致 14
1.4 “Memo文件不能被打开”(.DBTfile cannot be opened)的出错如何处理 16
1.5 为什么会出现“文件不存在”(File does not exist)的错误 17
1.6 “无数据库在使用,请输入数据库的名字:”(No database is in USE,Enterfile name:)的出错如何处理 19
1.7 与数据库文件有密切相关的文件有哪些,使用时应注意什么 20
1.8 “命令中出现了不可识别的短语/关键字”(Unrecognized phrase/key-word in command)的错误如何处理 21
1.9 “语法错”(Syntax error)的出错如何处理 23
1.10 如何处理“数据类型不匹配”(Data type mismatch)的错误 24
1.11 “变量没有找到”(Variable not found)出错原因是什么,如何排除 29
1.12 “不可识别的命令动词”(Unrecognized command verb)的出错如何处理 36
1.13 为什么不能用单个英文字母A—J做数据库文件名 37
1.14 为什么要避免字段名与内存变量名相同的命名做法 37
1.15 当执行QUIT命令退出时,若系统显示错误信息,应如何处理 40
1.16 “没有足够的内存”(Insufficient memory)的出错如何处理 41
1.17 “打开的文件太多”(Too many files are open)的出错如何处理 42
1.18 “不可识别的函数”(Invalid function name)的出错如何处理 43
1.19 “无效的函数变量”(Invalid function argument)的出错如何处理 44
1.20 “无效日期”(Invalid date)的出错如何处理 45
1.21 如何处理“STR()函数执行错误:超出范围”(***Execution error on STR():out of range)的错误 46
1.22 如何处理“SUBSTR()函数执行错误:开始位置超出范围”(***Execution error on SUBSTR():start point out of rahge)的错误 47
1.23 如何处理“STUFF()函数执行错误:字符串太大”(***Execution error on STUFF():String too large)的错误 50
1.24 如何处理“‘+’执行错误:被连接的字符串太大”(***Execution error on+:concatenated string too large)的错误 52
1.25 如何处理“REPLICATE()执行错误:字符串太长”(***Execution error on REPLICATE():String too large)的错误 53
1.26 如何处理“"↑"或"**"执行错误:底为负数,指数为小数”(***Execution error on↑or**:negative base,fractional exponent)的错误 53
1.27 为什么会出现明明相等的两个数却往往被判断为不等的情况,如何解决 54
1.28 明明两个字符串不相同,为什么比较这两个字符串时的值为真(.T.),如何解决 58
1.29 如何避免数据库文件的数据丢失 59
1.30 “遇到了文件结束标志”(End of file encountered)的出错如何处理 61
1.31 “遇到了文件开始标志”(Beginning of file encountered)的出错如何处理 63
1.32 使用记忆型(MEMO)字段应注意些什么 64
1.33 “在MEMO类型字段上的操作无效”(Operation with Memo field invalid)的出错如何处理 68
1.34 为什么会出现“进行排序的记录个数不够”(Not enough records to sort)的错误 69
1.35 “用于分类的磁盘空间不够”(Not enough disk space for SORT)的出错如何处理 70
1.36 “太多的分类关键字段”(Too many sortkey fields)的出错如何处理 71
1.37 “用于索引的磁盘空间不够”(Not enough disk space for INDEX)的出错如何处理 74
1.38 “索引表达式太大(最大值为220个字符)”(Index expression is too big (220 char maximum))的出错如何处理 74
1.39 “索引太大(最多100个字符)”(Index is too big(100 char maximum)的出错如何处理 75
1.40 “索引文件与数据库不匹配”(Index file does not match database)的出错如何处理 75
1.41 “记录不是索引的”(Record is not in index)的出错如何处理 76
1.42 为什么对含有日期型字段的复合表达式作索引关键字建立索引文件时,日期型字段的值不是按用户所需顺序排列,应如何解决 77
1.43 为什么在当前数据库文件存在的记录,用FIND或SEEK命令查找不到 81
1.44 “记录超出范围”(Record is out of range)的出错如何处理 86
1.45 “数据库不能被索引”(Databaseis not indexed)的出错如何处理 86
1.46 “没有Locate就用CONTINUE”(Continue without locate)的出错如何处理 88
1.47 “太多的索引”(Too manyindices)的出错如何处理 89
1.48 为什么会出现数据库文件中的一些记录应该被修改的而漏修改 90
1.49 “无效的索引号”(Invalid index number)的出错如何处理 99
1.50 “数值溢出(数据被丢失)”(Numeric overflow(data was lost)是怎样引起的,应如何处理 99
1.51 “文件已经打开”(File in already open)是怎么回事 103
1.52 “别名已经在使用”(ALIAS name already in use)错误原因是什么,应如何处理 105
1.53 “不能删除打开的文件”(Cannot eraseafile which is open)的出错如何处理 106
1.54 使用宏替换函数&应该注意什么 106
1.55 建立和使用报表文件(.FRM)时经常会引起那些错误,应如何处理 109
1.56 建立和使用标签文件(.LBL)时经常会引起那些错误,应如何处理 110
1.57 建立和使用屏幕格式文件(.FMT)时经常会引起那些错误,应如何处理 110
1.58 “不是DBASE Ⅲ文件”的错误原因是什么,应如何处理 112
1.59 “无效的逻辑字段操作”(Operation with logical field invalid)的错误原因是什么,应如何处理 120
1.60 “在MEMO类型字段上的操作无效”(Operation with Memo field invalid)的错误应如何处理 122
1.61 “无效运算符”(Invalid Operator)的出错如何处理 122
1.62 “非逻辑表达式”(Not a logical expression)的出错如何处理 123
1.63“非数字表达式”(Not a numeric expression)的出错如何处理 125
1.64 “未终结的字符串”(Unterminted String)的出错如何处理 127
1.65 “字符串太长而不适合”(String too long tofit)的出错如何处理 127
1.66 “@...SAY/GET语句的PICTURE子句错误”(PICTURE error inGET statement)的错误原因是什么,应如何处理 128
1.67 “SAY/GET位置超出屏幕”(Position is off the screen)的错误原因是什么,应如何处理 130
1.68 “打印机未准备好,重试吗?(Y/N)”(Printer not ready,retry?(Y/N))的出错如何处理 132
1.69 “打印机未连接或被关闭”(Printer is either not connected or turned off)的出错如何处理 133
1.70 如何解决打印机空走纸问题 133
1.71 为什么会出现用打印机输出时表格的最后一行不打印,如何解决 135
1.72 为什么使用内存变量的数据输出的表格会不整齐,应如何处理 136
1.73 为什么在用@语句设计表格时,掺杂使用SUM语句会出现打印的表格中间有空行,如何解决 139
1.74 为什么FOR(条件表达式〉与WHILE〈条件表达式〉不能等同使用 143
1.75 为什么用APPEND FROM〈文件名〉FOR〈条件〉转移数据时,有时是不对的,如何解决 144
1.76 “不能用一个无效的过滤条件来显示,离开DISPLAY选择项”(Cannot display using an invaild filter,leave DISPLAY option)的出错如何处理 150
1.77 “不能保存无效的过滤条件”(Cannot save an invalid filter)的出错如何处理 150
1.78 “无效的查询文件”(Not a valid QUERY FILE)的出错如何处理 150
1.79 “在这种环境下查询无效”(QUERY not valid for this environment)的出错如何处理 151
1.80 用SET FILTER语句设置的过滤条件为什么有时会不起作用,如何解决 151
1.81 “错误的参数个数”(Wrong number of parameters)错误的原因是什么,应如何处理 154
1.82 “参数语句未找到”(No parameter statement found)错误的原因是什么,应如何处理 155
1.83 出现“文件太长,要丢失一些数据”(File too large,some data may be lost)的错误时怎么办 156
1.84 出现“写文件时磁盘空间满:〈文件名〉”(Disk full when writing file:〈文件名〉)的错误时怎么办 157
1.85 当出现“**警告**数据可能会被丢失。确定(Y/N)”(**WARNING**Data will probably be lost,Confirm(Y/N))错误信息时应怎么办 158
1.86 为什么不能准确执行一个多行命令 158
1.87 出现死循环怎么办,如何避免死循环 159
1.88 结构命令不配对将引起什么样的错误,如何避免结构命令不配对 160
1.89 “必须是一个数组定义”(Must be an array definition)的错误如何处理 164
1.90 “数组元素的下标出界”(Subscript out of bounds)的错误如何处理 165
1.91 为什么利用RESTORE FROM命令把内存文件中的内存变量调入内存时,原有的内存变量不见了 166
1.92 用TOTAL命令得到的结果不正确是怎么回事,应如何解决 168
1.93 为什么有时在使用.NOT.EOF()作为循环条件时,一次循环都不执行,如何解决 172
1.94 “00%Sorted***堆栈溢出***”的出错原因是什么,应如何处理 175
1.95 为什么在条件中使用〈逻辑型变量名〉=.T.的表达式时会显示出错信息:“Operator/operand type mismatch” 177
第二篇 程序设计技巧 181
2.1 如何合理设计数据库文件 183
2.2 如何提高数据的输入速度 186
2.3 如何使用REPLACE语句来提高命令的执行效率 192
2.4 如何检查和排除文件中的重复输入记录 197
2.5 如何应用宏替换函数& 201
2.6 如何在编程中应用SUBSTR()函数 212
2.7 如何巧用DISPLAY和LIST命令 218
2.8 如何提高索引文件的效率 223
2.9 怎样使数值为“0”的数据不打印输出 231
2.10 如何提高统计速度 235
2.11 如何提高分类求和处理速度 240
2.12 如何实现多字段的分类求和 241
2.13 如何实现使用TOTAL命令求和时,做到既不发生数据溢出又不浪费存储空间 244
2.14 如何用程序方式来修改任一数据库结构 246
2.15 如何提高数据的检索(查找)速度 252
2.16 如何巧用COPY命令来复制用户所需的数据 255
2.17 如何认识功能菜单设计的一些技巧 261
2.18 如何使用多记录数据输入及修改的屏幕表格化光标控制技术 282
2.19 如何掌握数据库文件的数据管理程序设计 292
2.20 如何掌握数据库文件查询程序设计 310
2.21 如何掌握FOXBASE+的数组功能 327
2.22 如何应用FOXBASE+中自定义函数功能UDF 331
2.23 如何巧妙设置口令字(PASSWORD)(密码) 335
2.24 如何设计和实现数据库文件的保密 344
2.25 如何在程序中增加容错的功能 349
2.26如何掌握程序设计中使用打印机的技巧 365
2.27 如何实现与高级语言的数据通信 378
附录1 函数一览表 385
附录2 命令一览表 388
参考文献 398