用C#写出dBase III + DBF和FPT

时间:2016-08-31 14:07:50

标签: c# dbase

支持一个相当古老的应用程序我想用C#编写一个dBase III + -File,可以直接在遗留应用程序中使用。

为此,我必须在第一个字节中创建包含0xF5的文件,这意味着它在前三位中得到二进制“111”/十进制“7”,表示表格版本。我还没有找到任何描述7是什么的规范,但我想它必须是dBase III +的指标。 最值得注意的是,文件可以直接用Excel打开,没有任何错误消息,这是我用来测试创建文件的行为。

虽然我没有正确配置我的数据库连接。我找到了两种方法,两种方式都有效:

  1. VFPOLEDB.1 / FoxPro的OleDbConnection。这会创建DBF / FPT 文件,但在第一个字节中它表示30,这意味着在前三个版本中只有“1”表示位。我还没有找到一个文件告诉我1是什么意思,但我想这意味着“超越古代”。 该文件无法在Excel中正确打开,旧版应用程序可以读写,但不会附加到创建的表中。

  2. Microsoft.Jet.OLEDB.4.0的OleDbConnection,扩展属性= dBase III。这将创建一个可以在Excel中打开的DBF,但只要我添加一个Memo-field就会创建一个 DBT -file。第一个字节是83,因此前三个位100(bin)或4(dec)意味着“dBase Level 7”

  3. 有人可以告诉我用于dBase III + resp的驱动程序。 DBF / FPT - 版本为111(bin)/ 7(dec)的文件?

    问候

1 个答案:

答案 0 :(得分:0)

我们所做的是:遗留软件的开发者给出了我们想要写入的表的空 DBF 和相应的 FPT。然后我们通过 Visual FoxPro 连接到这个空文件并插入数据,将长文本的处理留给驱动程序。