Получить данные из базы данных Pervasive, используемой приложением Magic

У меня есть клиент, у которого есть разработчик (который с тех пор умер), который настроил его для приложения Magic eDeveloper, использующего базу данных Pervasive V8. Дело в том, что у него закончилась лицензия, а разработчика нет рядом.

В каталоге, содержащем файлы.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 ответ

Этот файл описывает структуру файлов DDF (FILE.DDF, FIELD.DDF и INDEX.DDF). К сожалению, файл не описывает файлы данных. DDF без записей, описывающих файлы, не сильно помогут.

Когда вы говорите, что срок действия лицензии истек, вы говорите о Pervasive лицензии или лицензии Magic? Если это лицензия Pervasive, вы можете загрузить пробную версию движка Pervasive, установить ее и активировать пробную лицензию.

Волшебство использовалось, чтобы предложить способ создания DDF для файлов данных. Я думаю, что это называется "DDF Make".

Другие вопросы по тегам