偶然的一次机会接触到tuxedo的应用程序,当然只是要改写一下接收数据的接口。刚入手的时候是一点也不明白啊,只有一个过期的数据结说明,还有一个比较详细的修改要求。客户也提供了一些学习的资料,也就是一些入门资料,没有什么系统的教程,这方面的文章在网上也很少有,更不用说是有使用的了,好像客户那边也没有多少人精通此道。当然也和这种东西用的比较少,而且用的都是一些比较大的企业有关。在外边有的培训也基本上是没有,可以咨询的人那就是更少。而且一共只有两本书是相关开发的。还真是要什么缺什么,如果没有一个好的指导根本就看不出的所以然来。
总结了在DELPHI环境下开发有以下几个步骤
1、安装TUXEDO 现在的版本比较多,一般用的有8.1,不过从9以后就可以支持.NET,最新的10有一个VS2005的支持版本。(不过很不幸我只能用8.1)
Microsoft Windows (32 bit) http://ftpmain.bea.com/download/pub/tuxedo...uxedo81_win.exe
2、去找一个开发用的LIC.TXT,这个是开发用的许可,现在ORACLE提供免费的下载了,这个在网上可以搜到。
http://licensecodes.oracle.com/downloads/LIC-TUX81-SDK-56B.zip
3、还有就是要一个Tux32.PAS的文档,这个东西是就是相关的函数的引用了,没有这个基本上没有什么可能进行TUXEDO方法的调用。(这个是最关键的了)
这个就是一个
http://read.pudn.com/downloads35/sourcecode/windows/110807/tuxedo_n_delphi/libtux.pas__.htm
4、还要了解发送来的数据是什么样的结构,结构就那几类,一般情况下用STRING,CARRAY,FML,VIEW,XML,MBSTRING.一般用一种可以用几种也行。我这用的是FML,因为这里边多重域,(指一个字段有多个值,这是有的字段在数据中可能要多次的出现,这时一定要注意把所有的值取出来。其实我最终修改的原因就是上次的时候少接收了值,以前不是很关键,现在客户需要了。)
这时是就是用到了两个方法
1)、一个是取值的
int Fget(FBFR *fbfr, FLDID fieldid,int occ, char *value, FLDLEN *maxlen)
描述: 从fbfr缓冲区中取ID为fieldid字段的值到value中。
参数:
fbfr: 指向该FML缓冲区首地址的指针
fieldid: 字段的ID
value: 取出的值保存到该指针指向的地址中
maxlen: 可以COPY到缓冲区value中的字符串的长度,返回值为真正COPY到该缓冲区的字
符串的长度
返回值:失败为-1, 错误号保存在全局变量Ferror中
occ指是就是取那个值,一般第一个值为0.取的时候进行循环就可以。
2)、一个是判断有没有多个值的
FLDOCC32 Focur32(FBFR32 *fbfr,FLDID32 fieldid);
这样你就可以得到要进行几次的循环了。
这两个处理好了基本上没有什么问题了。
当然上边说的是VC中的方法,不过在DELPHI是一样的。根据自己的需要去灵活的组合就可以得到你想要的东西,
这个是相关的参考文档
http://hi.baidu.com/isees/blog/item/99005417a5087600c93d6da2.html