社区
VFP
帖子详情
急!!如何解决dbc数据库文件破坏问题?
fengyeng
2004-11-10 03:42:56
我用的是VPF6.0,打开数据dbc文件时就出现,索引与表不匹配,请删除索引文件重新建立!
我将所有的索引都删了,终于可以打开dbc文件了,可是在项目管理器中一看数据库内的表名有的是空白的,可是那个小加号还在,一点那个的空白的数据表,就出现数据库错误的对话框,关也关不掉,只有ctrl+alt+del了。
我现在正在痛苦中。。。请高手指点。
分不够再加。
...全文
722
10
打赏
收藏
急!!如何解决dbc数据库文件破坏问题?
我用的是VPF6.0,打开数据dbc文件时就出现,索引与表不匹配,请删除索引文件重新建立! 我将所有的索引都删了,终于可以打开dbc文件了,可是在项目管理器中一看数据库内的表名有的是空白的,可是那个小加号还在,一点那个的空白的数据表,就出现数据库错误的对话框,关也关不掉,只有ctrl+alt+del了。 我现在正在痛苦中。。。请高手指点。 分不够再加。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fengyeng
2004-11-12
打赏
举报
回复
谢谢大家的帮助我来结贴了!
十豆三
2004-11-12
打赏
举报
回复
解决就好!
你和版主的方法我会整理到我的解决方法中,做为以后朋友类似问题用上!
fengyeng
2004-11-12
打赏
举报
回复
谢谢各位!问题已经解决!
我的解决方法是,将所有的dbf,cdx,dbc文件都删除了。然后用它们的备分件,bak,dcx,bdc分别改名,然后,在项目里打开数据库,将里面的所有表移除,删除数据库,再新新建数据库,再将表加入,有两表加不进来,其它的都正常了。
上面的方法:
apple_8180(十豆三)
我用过没有解决!
其它的我会马上试!
改日结贴,谢谢大家帮助!
LAIYANGPJ
2004-11-10
打赏
举报
回复
你把所有的文件COPY到另一个路径下,把当前文件夹文件清空后,再把你想要的数据库及表COPY到当前文件夹中,注意不要COPY项目文件(.PJX)试一下.
JohnShen
2004-11-10
打赏
举报
回复
执行
VALIDATE DATABASE RECOVER
命令看看有什么效果,如果还是不行,
就只好:
1、删除dbc文件
2、去掉所有dbf文件对数据库的引用
3、再新建一个dbc
4、然后加入所有dbf文件
十豆三
2004-11-10
打赏
举报
回复
请参考:
http://community.csdn.net/Expert/topic/3375/3375085.xml?temp=.7830927
十豆三
2004-11-10
打赏
举报
回复
上面的
B:恢复无法打开的数据库文件(*.dbc)是针对DBC数据库的
fengyeng
2004-11-10
打赏
举报
回复
楼上:我问是的dbc数据库
不是dbf表!
谢谢!
十豆三
2004-11-10
打赏
举报
回复
请参考:
http://community.csdn.net/Expert/topic/3311/3311295.xml?temp=3.721255E-02
十豆三
2004-11-10
打赏
举报
回复
A:如何修复被破坏的VFP表(*.dbf)
----目前在我国,有相当一部分正在运行应用程序是用VFP 编写的,由于突然断电、程序非法关闭等原因,经常会导致VFP数据库.DBF文件被破坏,如果数据库被破坏了,用VFP打开数据库.DBF时,会出现"notatable/dbf"错误提示,导致无法用VFP打开。
----首先介绍一下VFP数据库.DBF的文件结构:
----VFP数据库*.DBF的文件结构由头记录和数据记录组成,头记录定义该DBF的结构并包含与该库相关的其它信息。头记录由文件位置0字节开始。
----数据库头部几个关键字节含义如下:(注:库文件中存储整数时低位字节在前)
----字节偏移说明
----0 库文件的版本类型
----1-3 最近更新的日期(YYMMDD)
----4-7 库文件中记录的个数
----8-9 第一条记录的起始位置
----10-11 一条记录的长度(包括删除标记)
----其它字节的具体描述不在此赘述,可以参考有关部门书籍或者程序开头注释部分。
----在实际工作中发现,许多情况下数据库错误都是由于记录个数比实际记录个数大1个,以至于数据库无法用打开。
----主要通过以下两种办法来对数据库进行修复。
一、用Pctools、NU的Diskedit等工具软件进行恢复:
----运行Pctools,选中无法打开的数据库,按E文件进入编辑功能,按F1切换显示模式。
----按F3进行编辑,将开始的第5个字节值减1,按F5存储,然后退出Pctools,启动VFP, 发现被破坏的数据库可以打开使用了。
----由于许多操作者并不一定熟悉如何使用Pctools,因此我建议大家可以用比较熟悉的Excel程序根据下面的步骤来进行数据库的恢复。
二、用Excel进行恢复。
----启动Excel,选择"打开"按钮,出现打开对话框,在打开文件类型中选择Dbase/VFP(*.DBF)文件类型,再选中被破坏的数据库打开,这时不要做更改,只选择"保存"按钮,会出现"另存为"对话框,仍选择以原来文件名保存,会提示"文件已经存在,是否替换已有文件?",选择"是"。
----然后选择"文件"菜单上的"关闭",会出现提示"数据库文件不是Excel格式,要保留修改吗?
----要保存为Excel格式,单击'是',然后在'保存类型'下拉列表框选'Excel工作簿';
----要用现有格式保存并替换原来的文件,单击'是',然后单击'保存';
----要在关闭文件时维持现有格式并不作保存,单击'否'。"
----由于我们并没有对数据库的记录进行改动,只是为了恢复数据库,所以选择最后一项"在关闭文件时维持现有格式并不作保存",因此单击"否",退出Excel。
----启动VFP,再次打开数据库文件,发现数据库文件已可以被打开了,但是观察数据库的结构,会发现数据库结构中的索引不见了,不过数据库的索引文件还存在。我们只需要给数据库Add索引,并选择原来的索引文件Open即可。
----添加索引文件后退出数据库结构设置,并对数据库重新索引一下,就可以继续使用原 来被破坏的数据库了。
三、如果是VFP6的DBF,那么用VFP8打开试一试。如果是VFP8的DBF,那么用VFP6打开试一试
B:恢复无法打开的数据库文件(*.dbc)
在使用VFP数据库软件时,有时会发生数据库文件无法打开的错误,如:(1) not a database file(不是数据库文件) 。(2) memo file is missing/invalid(备注文件丢失/无效)等。若无法打开的数据库文件不能恢复,将给用户带来损失。那么如何恢复无法打开的数据库文件呢?首先须清楚数据库文件的结构。VFP中的数据库文件由文件描述部分和文件的数据内容两部分组成。文件的描述部分在文件前部,描述部分结束后是文件中存储的数据记录。文件描述又分成两部分:文件的整体结构的描述和每个字段的描述。整体结构描述由文件的第一个字节开始,共需32个字节。其中:
第1字节:备注文件标志位;
第2~4字节:文件的最后修改日期(年,月,日);
第5~8字节:文件记录数,低位在前高位在后;
第9~10字节:数据计录内容存储的开始位置,即字段描述结束后的下一个字节位置,低位在前高位在后;
第11~12字节:记录长度(全部字段长之和),低位在前高位在后;
第29字节:组合索引文件存在标记。
从第33个字节开始,每32个字节描述一个字段。
第1字节为“f5”表示数据库文件应有备注文件,若无备注文件欲打开该数据库文件就会出现本文开头的错误信息(2),此时只须将“f5”改成“03”即可(用pctool),“03”表示数据库文件无备注文件。
第29字节为“01”,表示数据库文件打开的同时打开组合索引文件。若无组合索引文件,也会出现错误提示信息,将“01”改成“00”即可,“00”表示数据库文件无组合索引文件。
欲打开数据库文件,屏幕报告“not a database file”(不是数据库文件)错误,是由于第5~8字节表示的文件记录数大于数据库文件实际记录数(若小于等于数据库文件实际记录数则不会报告错误),此时恢复该数据库文件只要获得文件的实际记录数,用手工方法修改文件的第5~8字节。数据库文件实际记录数可以通过下面的公式计算:
记录数=(文件长度-文件描述部分长度-文件结束标志长度)/记录长度式中,文件长度可通过“dir”命令获得;
文件描述部分长度=(第10字节)10 *256+(第9字节)10 ;
文件结束标志长度=1;
记录长度=(第12字节)10 *256+(第11字节)10;
若是数据库文件上述公式一定能整除,由公式计算出的记录数再换算成16进制填入文件的第5~8字节,注意低位在前高位在后。
根据上述过程笔者用c语言编写了恢复该数据库文件的程序modi.cpp(该程序在bc31 for dos下编译通过):
#include
#include
#include
int main(int argc,char *argv[])
{
file *fp;
unsigned int c[4],i;
long int total,records;
if(argc!=2){
printf("no file name!\n");
exit(1);
}
if( (fp=fopen(argv[1],"r+b"))==null){
printf("not find %s!\n",argv[1]);
exit(1);
}
total=filelength(fileno(fp));//获得文件长度
rewind(fp);
i=fgetc(fp); //读取第1个字节的值
if (i!=0xf3&&i!=0x03){
fseek(fp,-1l,1);
fputc(0x03,fp); //第1个字节的值若不为“f3”或“03”
} //则强迫为“03”
rewind(fp);
fseek(fp,8l,1); //指针指向第9字节
c[0]=fgetc(fp); //读取第9~12字节的值
c[1]=fgetc(fp);
c[2]=fgetc(fp);
c[3]=fgetc(fp);
records=(total-c[1]*256+c[0]-1)/(c[2]+c[3]*256);//计算记录数
c[0]=records%256; //c[0]~c[3]计算第5~8字节的值
c[1]=(records-c[3]*256*256*256-c[2]*256*256)/256;
c[2]=(records-c[3]*256*256*256)/65536;
c[3]=records/256/256/256;
fseek(fp,-8l,1); //指针指向第5字节
fputc(c[0],fp); //将c[0]~c[3]写入第5~8字节
fputc(c[1],fp);
fputc(c[2],fp);
fputc(c[3],fp);
printf("modify the database file successfully!\n");
fclose(fp);
return 1;
TypeScript类型系统与全栈项目资源包
本资源包整理了TypeScript类型系统设计检查清单、前后端接口契约模板、全栈项目目录结构、tsconfig配置基线、CI质量门禁、JavaScript迁移到TypeScript计划和常见
问题
排查指南,适合前端开发、Node.js后端开发、全栈工程化学习和团队代码质量建设参考。内容为原创模板,不包含真实生产密钥、账号、内部仓库地址或敏感配置,可按项目实际技术栈调整。
轻量级物联网开源平台,6分钟快速部署,千万级设备承载、电信级稳定性 物模型-规则引擎-数据通道-组态页面全流程低代码开发、前后端完全开源、支持多行业工业协议
DGIOT是国内首款轻量级开源工业物联网平台,我们致力于提供五类物联网
解决
方案:国企/研究院:平台代码开源,无版权产权困扰,国产无“卡脖”之忧;系统集成商:通用设备海量接入、定制设备二次开发、6分钟一键式私有化快速部署,低成本(降90%成本);工业设备制造商:海量设备上线运维,不受公有云限制,低成本,短周期自建平台,私有化部署,数据安全;开源平台开发者:一键式开发环境,集成和兼容各种最优开源工具,快速承接物联网项目;垂直领域物联网平台:快速部署私有化平台,千万级承载,运营级底座,全开放扩展
单相逆变器闭环逆变电路PWM模型仿真研究(Simulink仿真实现)
内容概要:本文围绕“单相逆变器闭环逆变电路PWM模型仿真研究”展开,基于Simulink平台构建单相逆变器的闭环控制系统仿真模型,重点研究PWM调制技术在逆变电路中的应用与实现。文中详细阐述了系统架构设计、电压电流双闭环控制策略的实现原理、控制器参数设计及仿真建模全过程,并通过仿真结果验证了控制方案在动态响应、稳态精度与系统稳定性方面的有效性。同时,文档还涵盖多种电力电子系统典型应用场景,如多类型短路故障仿真(中性点不接地、经小电阻接地、经消弧线圈接地等)、软开关技术、微电网能量管理、MPPT控制等,体现出较强的技术综合性和工程实践价值。; 适合人群:电气工程、自动化、电力电子与新能源等相关专业的高校本科生、研究生、科研人员,以及从事电力系统仿真、逆变器设计与新能源并网技术研发的工程技术人员。; 使用场景及目标:①掌握基于Simulink的单相逆变器闭环控制系统建模与PWM仿真方法;②深入理解双闭环控制、SPWM/SVPWM调制、系统稳定性分析等核心技术原理;③为课程设计、毕业设计、科研项目或实际工程开发提供可复用的仿真模型与技术支持; 阅读建议:建议结合文中仿真模型动手实践,重点掌握PI控制器参数整定、PWM信号生成机制与仿真结果分析方法,同时可延伸学习文档中涉及的软开关、故障仿真、微电网控制等关联技术,以拓展系统级设计能力。
群内分享图纸缺字报错,综合字体库从容应对.rar
做 CAD 的小伙伴注意啦!打开图纸文字乱码、缺字、全是问号?别慌,我整理了全套
解决
办法,大部分这类
问题
都能一次性修好,欢迎下载!
基于net8/10的跨平台高性能开源的工业物联网(IIoT)边缘计算网关 专注于工业现场设备数据的高效采集、边缘处理与可靠转发 项目面向真实工业场景设计,强调 稳定性、高性能、可扩展性与工程可维护性
一个开源的工业物联网(IIoT)边缘计算网关,专注于工业现场设备数据的高效采集、边缘处理与可靠转发。项目面向真实工业场景设计,强调 稳定性、高性能、可扩展性与工程可维护性,适用于工业自动化、能源、电力、制造、楼宇等多种应用环境。ThingsGateway 采用模块化与插件化架构,支持多种工业通信协议,可在边缘侧完成数据采集、预处理、协议转换与转发,有效降低系统耦合度与云端压力,是构建工业物联网系统的基础设施组件。
VFP
2,749
社区成员
29,142
社区内容
发帖
与我相关
我的任务
VFP
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
复制链接
扫一扫
分享
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章