Tuxdo函数说明2

更新时间:2023-11-11 08:06:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

常用BEA Tuxedo函数:

(一) 数据操作函数说明:

在BEA Tuxedo的数据操作过程中(与数据库中数据交互,与客户端数据交互),由于一般交互的数据较多,因此一般采用BEA Tuxedo 的FML 数据类型进行数据传输。

FML(Field Modification Language )类似于Oracle 数据库中的一个表,它可以象表一样存放一个Field 的多个值,而且对于同一个FML定义中的Field ,其值的个数是可以不相同的,主要根据用户的输入值而定。

FML类型有两种大小,通常的FML 是基于16位数据接口的。对于FML16位接口限制,最多只能有8192个不同的字段,每个字段值的最大的Buffer Size 为64K。

第二种是基于32位数据接口的,它允许30 millions 的Fields ,每个Field 允许20 billions Bytes。

FML Buffers:一个Field Buffer是由Field id,name,field type,field length组成的,其定义如下所示,其中*base 10050是指对于每一个Field 其field identifier 的取值的偏移量,它决定每一个Field 在Buffer中的相对地址。 定义:

*base 10050

# name number type flags comments name :字段名称

number::每个字段在FML Buffer中的相对位置,决定各字段的地址指针 type:字段数据类型 flags :暂时未用 Comments :注释 FML16 字段 Numbers 保留 1-100 可用 101-8191 FML32 字段 Numbers 保留 可用 1-10,000, 10,001-30,000,000 30,000,001-33,554,431 在定义字段时,注意*base value 中Value值的定义,首先参照上表定义, 其次注意,在自定义字段时,地址的不可重用性。如果地址重用,将会出现同一地址的字段,有的字段的值取不到。

头文件:

#include #include 主要函数: 函数名称 Fadd, Fadd32 Falloc,Falloc32 Fappend,Fappend32 Fchg,Fchg32 Fcpy,Fcpy32 Fdel,Fdel32 Fdelall,Fdelall32 Fdelete,Fdelete32 Ffind,Ffind32 描述 向字段中添加新的值 Field Buffer 分配空间并初始化 向Field Buffer中追加某个字段的新值 修改字段的某个值 Field Buffer 的相互拷贝 从buffer 中删除指定字段的指定值 从 buffer 中删除指定字段的所有值 从buffer 中删除所有字段的值 在 buffer 中查找指定字段的指定值 1 Ffindlast,Ffindlast32 Ffprint,Ffprint32 Ffree,Ffree32 Fget,Fget32 Fgetlast,Fgetlast32 Fldid,Fldid32 Fldtype, Fldtype32 Fname,Fname32 Fnext,Fnext32 Foccur, Foccur32 Fprint,Fprint32 Fsizeof,Fsizeof32 Fwrite,Fwrite32 在 buffer 中查找指定字段的最后一个值 将buffer 中的所有内容打印到指定的Stream 释放buffer 占用的空间 Get指定字段,指定occurrence的值 Get指定字段的最后一个值 根据 field name取得 field identifier 根据 field identifier 取得 field type 根据field identifier 取得 field name Get指定字段的下一个值 从buffer 中取得指定字段的值的个数 打印 buffer 中的内容到标准输出设备 取得 fielded buffer 的大小 根据文件内容写入fielded buffer 说明:以上函数中,其中带32的函数表示是应用于FML32的函数。 详细描述:

1、Fadd,Fadd32:向字段中添加新的值 函数原形: #include #include \

int Fadd(FBFR * fbfr, FLDID fieldid, char * value, FLDLEN len) #include \

int Fadd32(FBFR32 * fbfr, FLDID32 fieldid, char *value, FLDLEN32 len) 参数说明:

FBFR32 * fbfr : a pointer to a given field buffer 指定FML Buffer的指针

FLDID32 fieldid:指定的字段Field的名称(区分大小写)或ID (field identifier) 注意该值如果是字段的名称,不能以变量的形式给出,只能是字段名称的字符串。

char *value:与Buffer定义中该字段相同内容的对象的指针 FLDLEN32 len:数据的长度,一般给NULL Return value :如果操作错误返回 –1

2、Falloc,Falloc32:Field Buffer 分配空间并初始化

调用malloc给FML Buffer动态的分配空间,同时调用Finit进行初始化 函数原形:

#include #include \

FBFR * Falloc(FLDOCC F, FLDLEN V) #include \

FBFR32 * Falloc32(FLDOCC32 F, FLDLEN32 V) 参数说明:

F:The numbers of fields

V:The bytes of the value space

Return value :如果成功返回指针,否则返回NULL

3、Fappend,Fappend32:向Buffer中指定字段追加新值

2 函数原形: #include #include \

int Fappend(FBFR * fbfr, FLDID fieldid, char * value, FLDLEN len) #include \

int Fappend32(FBFR32 * fbfr, FLDID32 fieldid, char * value, FLDLEN32 len) 参数说明:

fbfr : a pointer to a given field buffer 指定FML Buffer的指针

fieldid: 指定的字段Field的名称(区分大小写)或ID (field identifier) char *value:与Buffer定义中该字段相同内容的对象的指针 len:数据的长度,一般给NULL Return value :如果操作错误返回 –1

4、Fchg,Fchg32:修改指定Buffer 中指定字段的指定序列的值 函数原形: #include #include \

int Fchg(FBFR * fbfr, FLDID fieldid, FLDOCC oc, char * value, FLDLEN len) #include \

int Fchg32(FBFR32 *fbfr, FLDID32 fieldid, FLDOCC32 oc, char * value, FLDLEN32 len) 参数说明:

fbfr : a pointer to a given field buffer 指定FML Buffer的指针

fieldid: 指定的字段Field的名称(区分大小写)或ID (field identifier) oc:Buffer中该字段的值的序列

oc 表示该字段值的一个序列,如果该序列不存在,则添加一个NULL值 如果为 –1,则以一个新的序列向Buffer中追加一个新值

char *value:与Buffer定义中该字段相同内容的对象的指针,在这里为新增值的指针 len:数据的长度,一般给0

Return value :如果操作错误返回 –1

5、Fcpy,Fcpy32:FML Buffer的相互拷贝 函数原形:

#include #include \

int Fcpy(FBFR * dest, FBFR * src) #include \

int Fcpy32(FBFR32 *dest, FBFR32 * src) 参数说明:

dest:destination fielded buffers 目标Buffer src: source fielded buffers 源数据Buffer Return value :如果操作错误返回 –1

6、Fdel,Fdel32:删除Buffer中指定字段的指定的一个值 函数原形: #include stdio.h> #include \

int Fdel(FBFR *fbfr, FLDID fieldid, FLDOCC oc) #include \

int Fdel32(FBFR32 * fbfr, FLDID32 fieldid, FLDOCC32 oc) 参数说明:

fbfr :a pointer to a given Field Buffer ,指定Buffer的数据指针 fieldid:指定字段的field identifier 可以为字段的名称或ID oc:删除值的序列号

3 Return value :如果操作错误返回 –1

7、Fdelall,Fdelall32 :删除Buffer中指定字段的所有值 函数原形: #include #include \

int Fdelall(FBFR * fbfr, FLDID fieldid) #include \

int Fdelall32(FBFR32 * fbfr, FLDID32 fieldid) 参数说明:

fbfr:a pointer to a given Field Buffer ,指定Buffer的数据指针 fieldid:指定字段的field identifier 可以为字段的名称或ID Return value :如果操作错误返回 –1

8、Fdelete,Fdelete32:删除指定Buffer中一组field的所有值 函数原形: #include #include \

int Fdelete(FBFR * fbfr, FLDID *fieldid) #include \

int Fdelete32(FBFR32 * fbfr, FLDID32 * fieldid) 参数说明:

fbfr:a pointer to a given Field Buffer ,指定Buffer的数据指针 fieldid:a pointer to an array of field identifiers. Return value :如果操作错误返回 –1

附:数组的声明:FLDID field[2]; FLDID32 field[2]

9、Ffind,Ffind32:在 buffer 中查找指定字段的指定值 函数原形: #include #include \

char * Ffind(FBFR * fbfr, FLDID fieldid, FLDOCC oc, FLDLEN * len) #include \

char * Ffind32(FBFR32 * fbfr, FLDID32 fieldid, FLDOCC32 oc, FLDLEN32 * len) 参数说明:

fbfr :a pointer to a given Field Buffer ,指定Buffer的数据指针 fieldid:指定字段的field identifier 可以为字段的名称或ID oc:值的序列号 len:数据的长度

Return value :points to an object that has the same type as the field type

10、Ffindlast,Ffindlast32:在 buffer 中查找指定字段的最后一个值 函数原形: #include #include \

char * Ffindlast(FBFR * fbfr, FLDID fieldid, FLDOCC * oc, FLDLEN * len) #include \

char * Ffindlast32(FBFR32 *fbfr, FLDID32 fieldid, FLDOCC32 * oc, FLDLEN32 * len) 参数说明:

fbfr :a pointer to a given Field Buffer ,指定Buffer的数据指针 fieldid:指定字段的field identifier 可以为字段的名称或ID

oc:an integer that is used to receive the occurrence number of the field. len:数据的长度

4 Return value :points to an object that has the same type as the field type

11、Ffprint,Ffprint32 :打印指定Buffer的值到Stream 函数原形:

#include #include \

int Ffprint(FBFR * fbfr, FILE * iop) #include \

int Ffprint32(FBFR32 * fbfr, FILE *iop) 参数说明:

fbfr:a pointer to a given Field Buffer ,指定Buffer的数据指针

iop:输出文件流 a pointer of type FILE that points to the output stream. Return value :如果操作错误返回 –1

12、Fprint,Fprint32:打印指定Buffer的内容到标准输出设备 函数原形:

#include #include \

int Fprint(FBFR * fbfr) #include \

int Fprint32(FBFR32 * fbfr) 参数说明:

fbfr:a pointer to a given Field Buffer ,指定Buffer的数据指针 Return value:如果操作错误返回 –1

13、Ffree,Ffree32:释放Buffer占用的空间 函数原形: #include #include \

int Ffree(FBFR * fbfr) #include \

int Ffree32(FBFR32 * fbfr) 参数说明:

fbfr:a pointer to a fielded buffer Return value :如果操作错误返回 –1

14、Fget,Fget32:从指定的Buffer取得指定Field的指定值 函数原形: #include #include \

int Fget(FBFR *fbfr, FLDID fieldid, FLDOCC oc, char * value, FLDLEN* maxlen) #include \

int Fget32(FBFR32 * fbfr, FLDID32 fieldid, FLDOCC32 oc, char * value,FLDLEN32 * maxlen)

参数说明:

fbfr : a pointer to a given field buffer 指定FML Buffer的指针

fieldid: 指定的字段Field的名称(区分大小写)或ID (field identifier) oc:Buffer中该字段的值的序列

char *value:与Buffer定义中该字段相同内容的对象的指针 maxlen:数据的长度,可以为NULL Return value :如果操作错误返回 –1

15、Fgetlast,Fgetlast32 :Get 指定Buffer中指定字段的最后一个occurrence的值 函数原形:

5

本文来源:https://www.bwwdw.com/article/rdsv.html

Top