从Magic应用程序使用的Pervasive数据库中检索数据

时间:2018-02-07 19:49:46

标签: pervasive btrieve

我有一个客户,他有一个开发人员(自那以后就已经死了)为他设置了一个使用Pervasive V8数据库的Magic eDeveloper应用程序。事情就是他的执照耗尽,开发人员不在身边。

包含.DAT文件的目录中没有DDF文件。但是,我找到了一个名为DDFA的文件,其中包含有关潜在DDF文件的文本。我不知道DDF文件的格式,DDFA文件的格式以及实际创建另一个文件的格式。

以下是DDFA文件的内容:

VRSN=700

Application=Yes
FILE={NAME="file.ddf",DESC="file.ddf",ACCKEY="..SC....",DBNAME="Default Database",ENCR=N,RESIDENT=78,
FLD={DESC="file id",PIC="2",STRG=5,ATTR=N,SIZ=2,WHLE=2,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="file name",PIC="20",STRG=1,ATTR=A,SIZ=20,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="file loc",PIC="64",STRG=1,ATTR=A,SIZ=64,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="flags",PIC="3",STRG=5,ATTR=N,SIZ=1,WHLE=3,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="filler",PIC="10",STRG=1,ATTR=A,SIZ=10,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
KEY={DESC="key 1(id)",MOD=S,DIR=T,RNG=Q,KEY_TYPE=R,
SEG={SIZ=2,FLD=1,DIR=A}},
KEY={DESC="key 2(name)",MOD=S,DIR=T,RNG=Q,KEY_TYPE=R,
SEG={SIZ=20,FLD=2,DIR=A}}}
FILE={NAME="field.ddf",DESC="field.ddf",ACCKEY="..SC....",DBNAME="Default Database",ENCR=N,RESIDENT=78,
FLD={DESC="field id",PIC="3",STRG=5,ATTR=N,SIZ=2,WHLE=3,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="file id",PIC="3",STRG=5,ATTR=N,SIZ=2,WHLE=3,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="field name",PIC="20",STRG=1,ATTR=A,SIZ=20,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="bt data type",PIC="3",STRG=5,ATTR=N,SIZ=1,WHLE=3,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="offset",PIC="5",STRG=5,ATTR=N,SIZ=2,WHLE=5,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="size",PIC="5",STRG=4,ATTR=N,SIZ=2,WHLE=5,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="decimals",PIC="3",STRG=5,ATTR=N,SIZ=1,WHLE=3,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="flags",PIC="3",STRG=4,ATTR=N,SIZ=2,WHLE=3,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
KEY={DESC="key 1(field id)",MOD=S,DIR=T,RNG=Q,KEY_TYPE=R,
SEG={SIZ=2,FLD=1,DIR=A}},
KEY={DESC="key 2(file id)",MOD=N,DIR=T,RNG=Q,KEY_TYPE=R,
SEG={SIZ=2,FLD=2,DIR=A}},
KEY={DESC="key 3(field name)",MOD=N,DIR=T,RNG=Q,KEY_TYPE=R,
SEG={SIZ=20,FLD=3,DIR=A}},
KEY={DESC="key 4(file id+field",MOD=S,DIR=T,RNG=Q,KEY_TYPE=R,
SEG={SIZ=2,FLD=2,DIR=A},
SEG={SIZ=20,FLD=3,DIR=A}},
KEY={DESC="key 5(fi+offset+dec)",MOD=N,DIR=T,RNG=Q,KEY_TYPE=R,
SEG={SIZ=2,FLD=2,DIR=A},
SEG={SIZ=2,FLD=5,DIR=A},
SEG={SIZ=1,FLD=7,DIR=A}}}
FILE={NAME="index.ddf",DESC="index.ddf",ACCKEY="..SC....",DBNAME="Default Database",ENCR=N,RESIDENT=78,
FLD={DESC="file id",PIC="2",STRG=5,ATTR=N,SIZ=2,WHLE=2,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="field id",PIC="5",STRG=5,ATTR=N,SIZ=2,WHLE=5,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="key number",PIC="2",STRG=5,ATTR=N,SIZ=2,WHLE=2,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="key segment",PIC="2",STRG=5,ATTR=N,SIZ=2,WHLE=2,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="flags",PIC="5",STRG=5,ATTR=N,SIZ=2,WHLE=5,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         1.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
KEY={DESC="key 1(file id)",MOD=N,DIR=T,RNG=Q,KEY_TYPE=R,
SEG={SIZ=2,FLD=1,DIR=A}},
KEY={DESC="key 2(field id)",MOD=N,DIR=T,RNG=Q,KEY_TYPE=R,
SEG={SIZ=2,FLD=2,DIR=A}},
KEY={DESC="key 3(file+key num+s",MOD=S,DIR=T,RNG=Q,KEY_TYPE=R,
SEG={SIZ=2,FLD=1,DIR=A},
SEG={SIZ=2,FLD=3,DIR=A},
SEG={SIZ=2,FLD=4,DIR=A}}}
FILE={NAME="fieldext.ddf",DESC="fieldext.ddf",ACCKEY="..SC....",DBNAME="Default Database",ENCR=N,RESIDENT=78,
FLD={DESC="File ID",PIC="3",STRG=5,ATTR=N,SIZ=2,WHLE=3,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         0.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="Field ID",PIC="3",STRG=5,ATTR=N,SIZ=2,WHLE=3,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         0.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
FLD={DESC="Extended data type",PIC="3",STRG=5,ATTR=N,SIZ=2,WHLE=3,RSRCE={MDFY=Y,TRNS=S,DEF=N,MOD=B,CTRL=E,CTRL_STP="         0.00000",NUL_ALW=N,STYLE=2,IDX_COLOR=1,IDX_FONT=1}},
KEY={MOD=S,DIR=T,RNG=Q,KEY_TYPE=R,
SEG={SIZ=2,FLD=1,DIR=A},
SEG={SIZ=2,FLD=2,DIR=A}}}

有没有人认出这种格式?我可以用它来创建DDF文件吗?或者这对其他一些工具有用吗?

我尝试使用BUTIL -SAVE ORIG.DAT ORIG.TXT并获得了一个更易读的文件,但我不太清楚该如何处理。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

该文件描述了DDF文件的结构(FILE.DDF,FIELD.DDF和INDEX.DDF)。不幸的是,该文件没有描述数据文件。没有描述文件记录的DDF不会有太大帮助。

当您说许可证已过期时,您是在谈论Pervasive许可证还是Magic许可证?如果它是Pervasive许可证,您可以下载Pervasive引擎的试用版,安装它并激活试用许可证。

Magic曾经提供了一种为数据文件创建DDF的方法。我认为它被称为" DDF Make"。