转载:http://dev2dev.bea.com.cn/techdoc/200305561.html
作者:吴绍永是(dev2dev ID: wsywin) BEA dev2dev中文网站--在线技术论坛Tuxedo栏目版主,资深Tuxedo专家
一、 课程目标
通过本课程学习,你可以掌握如下知识:
二、 String类型buffer介绍
(1)STRING类型buffer简介
STRING类型buffer是主要用于面向行、变长度的文本信息类型buffer。STRING类型buffer要求必须以NULL作为结束符的。如果系统采用STRING类型,那么在配置ubbconfig文件时,必须在*MACHINE部分配置TYPE,指明buffer类型为STRING类型。在两种不同类型架构的机器进行buffer传输时候,TUXEDO对STRING类型buffer进行加码、解码过程。无论系统申请了多少长度的buffer,系统自动按着NULL所在的位置决定STRING类型的buffer长度。
(2)STRING类型buffer如何申请
char *SndBuf;
SndBuf = (char *) tpalloc("STRING",NULL,1024)
(3)STRING类型使用方法和调用方法
strcpy(SndBuf,"Bea Tuxedo");
tpcall("TOUPPER",SndBuf,0,&RcvBuf,&len,0);
三、 CARRAY类型buffer介绍
(1)CARRAY类型buffer简介
CARRAY类型buffer是一种独立于机器的buffer类型。用户在使用时必须指定CARRAY类型数据的长度,CARRAY类型数据可以包含NULL字符。CARRAY类型数据不需要加、解码过程。CARRAY类型数据可以用来传输汉字、二进制数据、文件、图形等。CARRAY类型可以作为FML(FML32)、VIEW(VIEW32)的数据类型子项buffer。
(2)CARRAY类型buffer如何申请
tpalloc("CARRAY",NULL,1024*2)
(3)CARRAY类型使用方法和调用方法
四、 VIEW(VIEW32)类型buffer介绍
(1)VIEW类型buffer简介
Tuxedo使用VIEW类型buffer处理类似C语言的结构等数据类型复杂数据。使用VIEW类型buffer可以将各数据元素与一种结构数据类型结合,通过结构就可以访问各数据元素。VIEW类型数据即使没有没有数据也占用空间,结构发生变化,需要重新编译程序。
注明:(VIEW类型buffer是16位寻址的,VIEW32是32位寻址的.)
(2)VIEW类型buffer使用方法
使用VIEW类型数据步骤:
VIEW user $ /* VIEW structure for user information */ #type cname fbname count flag size null long count COUNT 1 - - “” 0 float sumfee SUMFEE 1 - - 0.0 string usrname USRNAME 1 - 80 “” short num NUM 1 - - 0 END
|
(3)编译VIEW文件
使用viewc(viewc32)编译view文件struct user { /* VIEW structure for user information */ long count; float sumfee; char usrname[80]; short num; }; |
五、 FML(FML32)类型buffer介绍
(1)VIEW类型buffer简介
FML类型buffer允许存取多个命名的字段。例如:(NAME: "BEA",ADDRESS "China Beijing",PHONE "010-85281188")。每一个命名的字段可以在buffer中存放零个或更多个(occurrences)的值.
注明:(FML类型buffer是16位寻址的,FML32是32位寻址的.)
*base 1000 # name number type flags comments COUNT 1 long - - SUMFEE 2 float - - USRNAME 3 string - - NUM 4 short - - |
/* fname fldid */ /* ----- ----- */ #define COUNT ((FLDID32)33555433) /* number: 1001 type: long */ #define SUMFEE ((FLDID32)100664298)/* number: 1002 type: float */ #define USRNAME ((FLDID32)167773163)/* number: 1003 type: string */ #define NUM ((FLDID32)1004) /* number: 1004 type: short */ |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267897/viewspace-1007485/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/267897/viewspace-1007485/