如何从cobol Data形成XFD

时间:2013-09-12 14:37:17

标签: cobol

我将尝试根据以下文件设置选项重新定义XFD文件结构

Anaylsis Result:

Max Record length 300
Min record length 61
No of records 466
Blocking factor 1
Preallocation amount 0
Extension amount 1
Compression factor 80
Encrypted ? No
Number of keys 4
Primary key has 1 segments
key size 13 offset 0

key 02 has 3 segments
Duplicates Are allowed
Key size 4 offset 4
Key size 40 offset 21
Key size 4 offset 0

Key 03 has 3 segments
Duplicates Are allowed
Key size 4 offset 4
Key size 8 offset 13
Key size 4 offset 0

Key04 has 1 segment
Duplicates Are allowed
Key size 10 offset 21

另一个已经无法从AcuODBC获取数据的给定XFD文件结构: 我正在通过ACUODBC从pote.XFD链接到pote Acu数据库文件。

XFD,02,POTE,POTE
00026,00018,002
1,0,008,00000
02
INTIND-UNIQ
INTIND-OCC
1,1,010,00008
01
IND16
000
0004,00004
00000,00004,12,00009,+00,000,000,INTIND-UNIQ
00004,00004,12,00009,+00,000,000,INTIND-OCC
00008,00010,16,00010,+00,000,000,IND16
00018,00008,16,00008,+00,000,000,TERM20

我正在通过ACUODBC从pote.XFD链接到pote Acu数据库文件。 我的问题是在这里如何根据给出的分析来改变我的pote.XFD结构,以形成正确的XFD结构。

我知道这个cobol表中有四个键,但我仍然不知道如何根据给定的分析信息手动配置这个数据结构。

下面是关于如何在我已经获得的手册中形成XFD正确结构的另一个参考指南,希望有专家可以帮助解释如何形成正确的XFD结构的方式。

# This xfd layout is a generic one suitable for accessing any 
# .DAD file. However, it needs to be copied and amended for each 
# DAD file that you wish to get access to. 
# The simplest scenario is that you copy dad.xfd to a new file 
# with the same name as the database you wish to access and extension .XFD 
# Then edit this new file and replace the two instances of 'FILE' with the 
# filename that you want to access. e.g. if you want to have ODBC access to 
# icvc.dad then copy dad.xfd to new file icvc.xfd and change line 
#   XFD,02,FILE,FILE            to be 
#   XFD,02,ICVC,ICVC 
# 
# If this doesn't work then the database file you are trying to access has 
# probably set different values for search index sizes. The easiest way to 
# check this is to run $list for the database that you want to access and 
# note down all the key information that it gives. If that is different 
# to the key info in this file then you need to modify the xfd file to match 
# In the current xfd there are four indexes defined. In all cases the first 
# index will be correct and so should the third index. However, the other 
# two may need to be modified or removed if not present. 
# Index 4 is optional and is not present if the database is rebuilt without 
# the fast list option. 
# explaining the details of 2nd index. 1 st line consists of 8 values separated 
# by commas. The first value of 3 is how many segments the index consists of. 
# second value 1 means duplicates allowed (0 means NO DUPS). 
# The remaining six fields are three pairs of key size and byte offset, e.g. 
# first index segment is 4 bytes long and starts from byte 4, second index 
# segment is 20 bytes long and starts from byte 21 etc. 
# The second line specifies how many field names there are to follow and lines 3 
# to 5 are the three field names as defined lower in this xfd. For instance 
# if you look at field D1UNIQ you will see it is defined as starting from byte 0 
# and is 4 bytes long. This corresponds to the values entered in the key definition. 
# 
XFD,02,ICVC,ICVC 
00300,00041,004 
# [Key Section] 
# [1st index] 
01,0,013,00000 
04 
D1UNIQ 
D1NAME 
D1NAMX 
D1OCCU 
# [2nd index] 
3,1,004,00004,020,00021,004,00000 
03 
D1NAME 
D1TUPP 
D1UNIQ 
# [3rd index] 
3,1,004,00004,008,00013,004,00000 
03 
D1NAME 
D1NUMB 
D1UNIQ 
# [4th index] 
1,1,020,00021 
01 
D1TUPP 
# [Condition Section] 
000 
# [Field Section] 
0015,00015,00016 
00000,00013,16,00013,+00,000,999,D1KEY 
00000,00004,12,00009,+00,000,000,D1UNIQ 
00004,00004,16,00004,+00,000,000,D1NAME 
00008,00001,16,00001,+00,000,000,D1NAMX 
00009,00004,12,00009,+00,000,000,D1OCCU 
00013,00008,11,00018,-06,000,000,D1NUMB 
00021,00040,16,00040,+00,000,000,D1TUPP 
00061,00001,01,00001,+00,000,000,D1GRAD 
00062,00004,12,00008,+00,000,000,D1DLUP 
00066,00004,12,00008,+00,000,000,D1TLUP 
00070,00004,16,00004,+00,000,000,D1OLUP 
00074,00001,16,00001,+00,000,000,D1TYPE 
00075,00002,16,00002,+00,000,000,D1FORM 
00077,00160,16,00160,+00,000,000,D1TEXT 
00237,00001,16,00001,+00,000,000,D1PRIN 
00238,00062,16,00062,+00,000,000,D1FILL 

1 个答案:

答案 0 :(得分:0)

首先这样做:

  

'#这个xfd布局是适合访问任何
的通用布局   '#.DAD文件。但是,每个都需要复制和修改   '#您希望访问的DAD文件。
  '#最简单的方案是将dad.xfd复制到新文件
  '#与您要访问的数据库同名,扩展名为.XFD
  '#然后编辑这个新文件,并将'FILE'的两个实例替换为
  '#要访问的文件名。例如如果你想有ODBC访问权限   '#icvc.dad然后将dad.xfd复制到新文件icvc.xfd并更改行
  '#XFD,02,文件,文件为   '#XFD,02,ICVC,ICVC

如果不起作用,请按照说明查找其中的键数和第二个键的值。如果您发现只有三个键,请从模板中删除第四个键。如果第二个键的值不同,请在[FieldSection]中更改它们。

在改变其他任何事情之前让它工作。