Duangw

VIEW类型

索引:

  1. VIEW(VIEW32)文件
  2. VIEWC编译器
  3. 头文件
  4. 环境变量

VIEW(VIEW32)类型的buffer用于传输C结构数据。

 

1.VIEW(VIEW32)文件

tuxedo处理C结构需要一个文件,描述与C结构的映射和可能存在的FML模式转换。

文件的每一行描述C结构中的一个域,每行的格式如下:

type:域的数据类型。可选值:short、long、float、double、char、string、CARRAY;

cname:C结构域名;

fbname:FML buffer域名;

count:元素个数;

flag:标志。可选值(下列之一):

size:STRING或CARRAY型的大小,对于小数,两个数用”,”分隔;

NULL:定义该域的null值。若不定义,则tuxedo的缺省定义如下:对所有的数字型是0或(0.0);对char型是”\0”;对STRING和CARRAY是””。定义时可以使用反斜线转义字符。指定关键字NONE表示该域没有缺省null值。对string和字符数组最大可为2660个字符。

文件中以“#”打头的行是注释,被忽略;以“$”开头的行也是注释,但它会被拷贝到生成的C头文件里。

示例:

VIEW aud
$ /* VIEW structure for audit information */
#type  cname  fbname  count  flag  size null
long  b_id  BRANCH_ID  1   -    -   0
float  balance  BALANCE  1  -    -   0.0
string  ermsg  STATLIN   1   -   80   “”
END

 

2.VIEWC编译器

上一节形成了VIEW的描述文件(后缀为.v)后,还要使用VIEWC编译器编译形成一个C头文件(.h)和二进制文件(.V)。

VIEWC的语法如下:

viewc [-n] [-d viewdir] [-C] viewfile [viewfile ...]
或
viewc32 [-n] [-d viewdir] [-C] viewfile [viewfile ...]

其中viewfile就是上面的描述文件。

选项的含义如下:

-d viewdir:指定输出文件的存放路径(缺省放在当前目录);

-C:生成一份COBOL的拷贝,放在当前目录;

-n:不处理FML映射。

 

3.头文件

viewc生成的头文件包含结构的定义,可用于应用程序中。如:

/* VIEW structure for audit information */
struct aud {
long b_id; /* null=0 */ float balance; /* null=0.000000 */ char ermsg[80]; /* null=”” */ };

 

4.环境变量

在应用中使用VIEW,要指定二进制文件(.V或.VV)的存取路径。这通过设置如下的环境变量来实现:

VIEWFILES(VIEWFILES32):用逗号分隔的VIEW文件列表;

VIEWDIR(VIEWDIR32):用冒号分隔的路径列表;

若使用了FML,还要指定FML相关的环境变量。

注意:上面的文件列表、路径列表中间不能有空白字符。