我从文件整理软件中留下了DBF
,FPT
和CDX
个文件的遗留集合。从CDX和FTP后缀来看,我认为它是一个Visual FoxPro数据库。从第一眼看到DBF文件,看起来它有field descriptors。我想检查那里存储的数据,并使用或提取任何有用的东西。
00000000: 31 0B 06 0E-2F 00 00 00-08 02 28 01-01 00 00 01 1/ (
00000010: 00 00 00 00-00 00 00 00-00 00 49 40-01 7F 00 00 I@
00000020: 4E 41 4D 45-00 00 00 00-00 00 00 43-01 00 00 00 NAME C
00000030: FF 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00
00000040: 43 41 54 5F-52 4F 4F 54-49 44 00 42-00 01 00 00 CAT_ROOTID B
00000050: 08 00 04 00-00 00 00 00-00 00 00 00-00 00 00 00
00000060: 50 52 4E 54-5F 49 44 00-00 00 00 42-08 01 00 00 PRNT_ID B
00000070: 08 00 04 00-00 00 00 00-00 00 00 00-00 00 00 00
00000080: 41 54 54 52-49 42 53 00-00 00 00 49-10 01 00 00 ATTRIBS I
00000090: 04 00 04 00-00 00 00 00-00 00 00 00-00 00 00 00
000000A0: 49 53 5F 45-58 43 4C 55-44 45 00 49-1A 01 00 00 IS_EXCLUDE I
000000B0: 04 00 04 00-00 00 00 00-00 00 00 00-00 00 00 00
000000C0: 43 41 54 5F-49 44 00 00-00 00 00 42-1E 01 00 00 CAT_ID B
000000D0: 08 00 0C 00-00 00 00 00-00 00 00 00-00 00 00 00
000000E0: 54 53 00 00-00 00 00 00-00 00 00 37-26 01 00 00 TS 7&
000000F0: 08 00 14 00-00 00 00 00-00 00 00 00-00 00 00 00
到目前为止我尝试了什么:
将用户DNS创建为“免费表目录”并将其路径指向文件集
在各种工具(如SQL Explorer和SQL Server导入/导出向导)中未列出该OBDC DNS的表。
SELECT * FROM
任何DBF文件都会导致[Microsoft][ODBC Visual FoxPro Driver]Not a table.
错误。另外,我试过了:
两次尝试打开表都导致Corrupt table/index header.
错误。
另外,我只是尝试了tDBF component,但它看起来已经放弃并加载了Kylix Libc
依赖项,因此无法在Delphi中编译而无法修复它。
答案 0 :(得分:3)
问:如何确认哪些文件确实是Visual FoxPro?
根据您的dbf数据转储,它似乎是Visual FoxPro。根据Microsoft的.dfb表文件结构的MSDN文档http://msdn.microsoft.com/en-US/library/st4a0s68(v=vs.80).aspx
,第一个字节的值为0x31Visual FoxPro, autoincrement enabled
另外还有关于您提及的文件扩展名的信息:
问:上述症状是否表明存在真正的数据损坏或只是不兼容/配置错误?
抱歉在这里帮不了你......
问:最后,如何使用现代的东西来访问表并开始检查数据?
我之前使用Delphi的ADO(dbGo)组件设法访问dfb文件。我下载了“Microsoft Access数据库引擎2010可再发行组件”http://www.microsoft.com/en-us/download/confirmation.aspx?id=13255中包含的FoxPro OLE DB提供程序。
初始连接字符串如下所示:
Provider=VFPOLEDB.1;Data Source=[MY_FOXPRO_DIR_PATH];Password="";Collating Sequence=MACHINE
当我研究我的代码时,我使用了更长的代码,遗憾的是没有任何注释。无论如何我都扔了它:
Provider=VFPOLEDB.1;Data Source=[MY_FOXPRO_DIR_PATH];Mode=Share Deny None;Extended Properties="";User ID="";Mask Password=False;Cache Authentication=False;Encrypt Password=False;Collating Sequence=MACHINE;DSN="";DELETED=True;CODEPAGE=1252;MVCOUNT=16384;ENGINEBEHAVIOR=90;TABLEVALIDATE=3;REFRESH=5;VARCHARMAPPING=False;ANSI=True;REPROCESS=5
答案 1 :(得分:0)
为什么不试图找到Visual Fox Pro 9的副本,看看它是否会打开文件。 (UniversalThread有一个VFP部分和VFP专家,您也可以在这里提出问题。)
如果您可以在VFP中打开它,只需将其复制到.CSV或制表符分隔文件,您就可以将其导入到您想要的任何系统中。
有时VFP表(.DBF,.CDX,.FPT)链接到"数据库" (容器的种类),它扩展了它们的字段名称并添加了触发器之类的东西等。在某处查找.DBC文件。或者他们可以独立。我不确定如果你试图打开一个VFP表会发生什么,它是DBC(数据库容器)的一部分而你没有容器可用。
答案 2 :(得分:0)
如何确认哪些文件确实是Visual FoxPro?
dbf扩展和第一个字节h31表示它是Visual FoxPro表。
上述症状是否表明实际数据损坏或仅仅是不兼容/配置错误?
Microsoft ODBC驱动程序与VisualFoxPro
最后,如何使用现代的东西访问表并开始检查数据?
我认为最好的方法是使用Vista Software的Apollo数据库引擎。
http://www.apollodb.com/default.asp