FoxBASE+使用中的奇怪错误
11-08 12:37:21软件技巧
浏览次数:193次
标签:软件技巧大全,http://www.duosi8.com
FoxBASE+使用中的奇怪错误,
在使用MODI COMM命令时,指出“读文件错”;使用DIR命令时在记录长度栏显示“不能读文件”;在运行命令程序时,指出“打开文件太多”等一类让人费解的错误。查阅手册,其打开文件个数约定值是十六个之多,使用的也只不过两三个。原因何在呢?原来,FoxBASE+是DOS的基础上工作。它要受DOS的制约。在IBM PC/XT机上,DOS通常默认用户至多可同时打开8个文件。而这8个文件中系统本身就使用了其中5个,因此留给用户的只有3个,这是其一。其二是,如果数据库文件中含有备注型字段,而备注型字段是单独建一个文件。也就是说打开一个含备注型字段的库文件,实际上相当于打开了两个文件。因此出现上述错误。
要解决这个问题,只需在DOS系统盘,或CCDOS系统盘上建立一个环境设备文件加以修改即可。方法为:
A>COPY COM CONIG.SYS
FILES=18
^Z
这样,重新启动后就可以同时打开18-5=13个文件了。同时要注意,打开文件个数不是越多越好。因为,每增加一个,内存就会多开销48字节,使用户可用空间减少48字节。一般是够用就行。
二、“磁盘满”误判的原因
在640K内存,双软驱机上,一般是让一级汉字驻留内存,A驱放系统2#盘,B驱放使用盘。有时,FoxBASE+系统能够进入,但几乎不能使用任何命令。只要键入命令就出现“磁盘满”错误。只好退出检查,可B盘剩余2000KB以上,A盘也有近30KB的空间。重新进入,现象依旧。这套系统盘已使用较长时间均为正常,故怀疑病毒。可折腾很长时间,仍不能解决。观察分析后发现,FoxBASE+系统与其它覆盖系统有所不同;其它覆盖系统只存在重复读盘,可以在系统盘上加写保护;而FoxBASE+系统不仅存在重复读盘,还存在重复写盘。它在进入系统时,由SYS(3)函数产生文件名,在系统2#盘上建立一个长度为0的文件,使用命令时就直接在磁盘分配表中占用磁盘空间(由内存中的文件控制块FCB管理),而对文件长度进行修改,最后由QUIT命令收回这些空间。每次需占用大约30K。如果非正常退出,这些空间则 能自动收回。时间长了,就会出现上述现象。
解决的方法是,利用DOS的CHKDSK命令将这些空间收入文件,再删除*.CHK文件即可收回这些空间。
三、不能使用“RUN”命令的处理过程。
“RUN”(或“!”)命令可以使FoxBASE+不退出本系统而执行DOS命令。这是一个很有用的功能。它悬挂FoxBASE+系统,退回到DOS级工作。因此能完成许多FoxBASE+不能完成的功能。即使是FoxBASE+具有相同的功能,使用这一命令执行的速度却快许多。但是,执行该功能有两个条件,一是必须在FOX子目录下存在COMMAND.COM文件。使用DOS的PATH命令和FOX的SET PATH TO设置都无济于事。二是进入FOX前至少有403K的自由内存空间。
实际使用中,第一个条件是容易满足的。对于第二个条件应用一些技巧。根据笔者的使用有两种情况,对一般双软机使用中通常是将一级汉字驻留内存,这样空间显得紧张。DOS和dBASE-Ⅲ系统都介绍BUFFRES设置得越大则读写缓冲区越大,执行程序时会工作得越快。对于数据库软件,速度问题本身就是一个突出问题,因此普遍把BUFFERS值设置得较大。然而实际使用得知,FoxBASE+系统会自动调整缓冲区的大小,该设置对运行速度不产生影响;而它却对能否使用RUN命令影响较大。原因是一个缓冲区使DOS占用内存增加528字节,而FoxBASE+系统的可使用空间就减少528字节;对于640K内存机型,这几KB内存之差就能决定能否使用“RUN”命令。实践得知,当FILES=15时,BUFFERS应小于22方可使用。
对于内存1M的机型,一般将扩充内存用来建虚盘放字库,使用213汉字系统,这时一般不是不能用“RUN”命令的。原因是系统自带的213.BAT文件把打印模块,部分高点阵字库等在FoxBASE+系统极少使用的内容也调入了内存,使内存不够。解决的方法是将其213.BAT文件改为:
echo off
cls
c:
cd\213
if not exist d:hzk16 copy hzk16 d:
file3 d2
cccc
cv26
yx1
key
lx1
kwb
wbzx
cd\
echo on
这样,进入汉字系统后还有478K自由空间;从而不仅可以使用“RUN”命令,而且运行FoxBASE+程序也比以前快许多。
四、QUIT的意义
QUIT是FoxBASE+正常退出系统命令。有些用户不常使用该命令,这是不清楚它的功能所造成的。FoxBASE+系统的打印机输出是无缓冲区的直接输出,而磁盘文件的输出是经过缓冲区的输出。简单地说,使用了存盘命令,但实际上并不一定真正存到磁盘上。QUIT命令的第一个功能是将缓冲区的全部内容存盘,避免数据丢失。
其二是释放磁盘空间。前面谈到FoxBASE+系统与其它覆盖系统有一定区别,其它的覆盖系统只存在重复读盘,系统盘可加写保护,而该系统的2#盘是禁止加写保护的,其原因是它不仅重复读盘而且要重复写盘;它的写盘也与普通的文件存盘不一样,运行过程中可以直接查到系统2#盘上新建一个长度为“0”的文件,但实际上它要占用大约30K的空间。利用QUIT命令,其第二个作用就是释放这些被占用的空间,删除新建的文件。若非正常退出,人为删除该新建文件是不能回收磁盘空间的,只有用CHKDSK命令回收。
第三,系统为了节省内存,进入时是拆除了常驻的COMMAND.COM文件时,QUIT的第三个作用是释放自己所占用的内存空间,并装回COMMAND.COM文件。
当然,它还有一个功能就是关闭所有被打开的文件。
因此,QUIT命令具有“打扫战场”的作用,不能忽视它的使用。
注:该过程使用的软件是:DOS3.0、CCDOS4.0(或213H0、FoxBASE+2.1等。 (成都 冯建军)
在使用MODI COMM命令时,指出“读文件错”;使用DIR命令时在记录长度栏显示“不能读文件”;在运行命令程序时,指出“打开文件太多”等一类让人费解的错误。查阅手册,其打开文件个数约定值是十六个之多,使用的也只不过两三个。原因何在呢?原来,FoxBASE+是DOS的基础上工作。它要受DOS的制约。在IBM PC/XT机上,DOS通常默认用户至多可同时打开8个文件。而这8个文件中系统本身就使用了其中5个,因此留给用户的只有3个,这是其一。其二是,如果数据库文件中含有备注型字段,而备注型字段是单独建一个文件。也就是说打开一个含备注型字段的库文件,实际上相当于打开了两个文件。因此出现上述错误。
要解决这个问题,只需在DOS系统盘,或CCDOS系统盘上建立一个环境设备文件加以修改即可。方法为:
A>COPY COM CONIG.SYS
FILES=18
^Z
这样,重新启动后就可以同时打开18-5=13个文件了。同时要注意,打开文件个数不是越多越好。因为,每增加一个,内存就会多开销48字节,使用户可用空间减少48字节。一般是够用就行。
二、“磁盘满”误判的原因
在640K内存,双软驱机上,一般是让一级汉字驻留内存,A驱放系统2#盘,B驱放使用盘。有时,FoxBASE+系统能够进入,但几乎不能使用任何命令。只要键入命令就出现“磁盘满”错误。只好退出检查,可B盘剩余2000KB以上,A盘也有近30KB的空间。重新进入,现象依旧。这套系统盘已使用较长时间均为正常,故怀疑病毒。可折腾很长时间,仍不能解决。观察分析后发现,FoxBASE+系统与其它覆盖系统有所不同;其它覆盖系统只存在重复读盘,可以在系统盘上加写保护;而FoxBASE+系统不仅存在重复读盘,还存在重复写盘。它在进入系统时,由SYS(3)函数产生文件名,在系统2#盘上建立一个长度为0的文件,使用命令时就直接在磁盘分配表中占用磁盘空间(由内存中的文件控制块FCB管理),而对文件长度进行修改,最后由QUIT命令收回这些空间。每次需占用大约30K。如果非正常退出,这些空间则 能自动收回。时间长了,就会出现上述现象。
解决的方法是,利用DOS的CHKDSK命令将这些空间收入文件,再删除*.CHK文件即可收回这些空间。
三、不能使用“RUN”命令的处理过程。
“RUN”(或“!”)命令可以使FoxBASE+不退出本系统而执行DOS命令。这是一个很有用的功能。它悬挂FoxBASE+系统,退回到DOS级工作。因此能完成许多FoxBASE+不能完成的功能。即使是FoxBASE+具有相同的功能,使用这一命令执行的速度却快许多。但是,执行该功能有两个条件,一是必须在FOX子目录下存在COMMAND.COM文件。使用DOS的PATH命令和FOX的SET PATH TO设置都无济于事。二是进入FOX前至少有403K的自由内存空间。
实际使用中,第一个条件是容易满足的。对于第二个条件应用一些技巧。根据笔者的使用有两种情况,对一般双软机使用中通常是将一级汉字驻留内存,这样空间显得紧张。DOS和dBASE-Ⅲ系统都介绍BUFFRES设置得越大则读写缓冲区越大,执行程序时会工作得越快。对于数据库软件,速度问题本身就是一个突出问题,因此普遍把BUFFERS值设置得较大。然而实际使用得知,FoxBASE+系统会自动调整缓冲区的大小,该设置对运行速度不产生影响;而它却对能否使用RUN命令影响较大。原因是一个缓冲区使DOS占用内存增加528字节,而FoxBASE+系统的可使用空间就减少528字节;对于640K内存机型,这几KB内存之差就能决定能否使用“RUN”命令。实践得知,当FILES=15时,BUFFERS应小于22方可使用。
对于内存1M的机型,一般将扩充内存用来建虚盘放字库,使用213汉字系统,这时一般不是不能用“RUN”命令的。原因是系统自带的213.BAT文件把打印模块,部分高点阵字库等在FoxBASE+系统极少使用的内容也调入了内存,使内存不够。解决的方法是将其213.BAT文件改为:
echo off
cls
c:
cd\213
if not exist d:hzk16 copy hzk16 d:
file3 d2
cccc
cv26
yx1
key
lx1
kwb
wbzx
cd\
echo on
这样,进入汉字系统后还有478K自由空间;从而不仅可以使用“RUN”命令,而且运行FoxBASE+程序也比以前快许多。
四、QUIT的意义
QUIT是FoxBASE+正常退出系统命令。有些用户不常使用该命令,这是不清楚它的功能所造成的。FoxBASE+系统的打印机输出是无缓冲区的直接输出,而磁盘文件的输出是经过缓冲区的输出。简单地说,使用了存盘命令,但实际上并不一定真正存到磁盘上。QUIT命令的第一个功能是将缓冲区的全部内容存盘,避免数据丢失。
其二是释放磁盘空间。前面谈到FoxBASE+系统与其它覆盖系统有一定区别,其它的覆盖系统只存在重复读盘,系统盘可加写保护,而该系统的2#盘是禁止加写保护的,其原因是它不仅重复读盘而且要重复写盘;它的写盘也与普通的文件存盘不一样,运行过程中可以直接查到系统2#盘上新建一个长度为“0”的文件,但实际上它要占用大约30K的空间。利用QUIT命令,其第二个作用就是释放这些被占用的空间,删除新建的文件。若非正常退出,人为删除该新建文件是不能回收磁盘空间的,只有用CHKDSK命令回收。
第三,系统为了节省内存,进入时是拆除了常驻的COMMAND.COM文件时,QUIT的第三个作用是释放自己所占用的内存空间,并装回COMMAND.COM文件。
当然,它还有一个功能就是关闭所有被打开的文件。
因此,QUIT命令具有“打扫战场”的作用,不能忽视它的使用。
注:该过程使用的软件是:DOS3.0、CCDOS4.0(或213H0、FoxBASE+2.1等。 (成都 冯建军)
,FoxBASE+使用中的奇怪错误
《FoxBASE+使用中的奇怪错误》相关文章
- › 实用的FOXBASE辅助工具--FOXDOC
- › 提高FOXBASE程序可读性的一种方法
- › Foxbase最常见错误信息及解决方法
- › 西文FoxBASE错误信息的“汉化”
- › 如何优化FOXBASE+的运行环境
- › FOXBASE+2.1中一个未公开的限制
- › 用FOXBASE编辑报表表头的技巧
- › set exact命令对Foxbase数据库记录查找的影响
- › UNFoxbase的参数说明
- › FoxBASE+使用中的奇怪错误
- › Foxbase中自定义函数的意义和函数的妙用
- › Foxbase 数据库文件与其它类型文件的数据交换
- 在百度中搜索相关文章:FoxBASE+使用中的奇怪错误
tag: 软件技巧,软件技巧大全,电脑学习 - 软件技巧
热门推荐
- · 为何QQ总弹出安全登录验证2则
- · 多媒体升级时常见故障的处理
- · 利用硬盘驱动器号制作防扩散FOXPRO程序
- · 高速视频转换借力CUDA
- · 在KMPlayer中手动切换解码器
- · 如何突破IP加MAC绑定
- · 如何让ACDSee成为默认的图片浏览器
- · SnagIt连续抓以多个窗口
- · SnagIt直接截取灰度图片
- · Nero快速制作精美的光盘封面
- · 完美卸载XP快速卸载顽固软件
- · VoptXP测试驱动器性能
- · VirturlDriver让虚拟光驱开机时自动加载
- · 通过递归调用来搜索文件
- · AutoCAD复制粘贴图纸导致死机
- · 监控软件导致QQ无法登录
- · 提高WindowsXP启动速度的方法
- · Office 2007无法正常卸载怎么办
- · 如何用批处理一次建立或删除多个目录
- · 教你Windows百毒不侵的13个妙招
- · ATI显卡在线看电影时花屏应该如何解决