请问如何使用中间件?(100分)

B

bbzy

Unregistered / Unconfirmed
GUEST, unregistred user!
是作为外部程序运行?还是
举个例子,好吗?
 
中间件是一个外部程序, 不过他给你提供了接口, 有一些还有控件提供给你, 就像是
用普通的控件一样
 
对不起,我是一个菜鸟,还没有调过外部程序,
请问具体如何用中间件Tuxedo ?
 
我要利用该件去取数!!!
 
吾不会,关注!
 
对于TUXEDO来说,应用是非常灵活的,它的数据传输方式和SOCKET,
DCOM一样,传送字符串,但是怎样把包含业务逻辑的数据正确的传
输并接收这需要你做个函数定义传输规则,一个好的规则使你事半
功倍。下面是我的一个VIEW数据类型服务器端添加数据的例子,
先看看吧。
//////////////////////////
//PersonInfo_View.h
//////////////////////////
struct PersonInfo_View {
char Name[20];
char Address[30];
char Tel[16];
char Email[16];
};
//////////////////////////
// Services PersonInfo
//////////////////////////
#include <stdio.h>
#include "atmi.h"
#include "PersonInfo_View.h"
#include <ctype.h>
EXEC SQL begin
DECLARE SECTION;
char cName[20];
char cAddress[30];
char cTel[16];
char cEmail[16];
int nPersonID;
struct PersonInfo_View *PersonInfoData;
char ConnectDatabase[30];
EXEC SQL END DECLARE SECTION;
EXEC SQL INCLUDE SQLCA.H;
void AddPersonInfo(TPSVCINFO *rqst)
{
PersonInfoData = (struct PersonInfo_View *)rqst->data;
strcpy(cName, PersonInfoData->Name);
strcpy(cAddress, PersonInfoData->Address);
strcpy(cTel, PersonInfoData->Tel);
strcpy(cEmail, PersonInfoData->Email);
fprintf(stderr,"PersonInfoData->Name:%s",cName);
fprintf(stderr,"PersonInfoData->Address:%s",cAddress);
fprintf(stderr,"PersonInfoData->Tel:%s",cTel);
fprintf(stderr,"PersonInfoData->Email:%s",cEmail);
strcat(ConnectDatabase,"tuser/tuser@armydata");
EXEC SQL CONNECT: ConnectDatabase;
EXEC SQL
SELECT MAX(ID) INTO :nPersonID FROM PersonInfo;
if(nPersonID==0)
{
nPersonID = 0;
}
else
{
nPersonID = nPersonID + 1;
}
EXEC SQL
INSERT INTO PersonInfo VALUES :)nPersonID,:cName,:cAddress,:cTel,:cEmail);
if (sqlca.sqlcode<0)
{
tpreturn(TPFAIL,0,NULL,0,0);
}
else
{
tpreturn(TPSUCCESS,0,NULL,0,0);
}
}
//////////////////////////
//client call function
//////////////////////////
int __stdcall AddPersonInfo(char *Name,char *Address,char *Tel, char *Email)
{
long len;
struct PersonInfo_View PersonInfo;
struct PersonInfo_View *sendbuf;

strcpy(PersonInfo.Name,Name);
strcpy(PersonInfo.Address,Address);
strcpy(PersonInfo.Tel,Tel);
strcpy(PersonInfo.Email,Email);
sendbuf = (struct PersonInfo_View *)tpalloc("VIEW", "PersonInfo_View", sizeof(struct PersonInfo_View));
sendbuf = &amp;PersonInfo;
if(sendbuf == (struct PersonInfo_View *)NULL )
{
return -1;
}
if (tpcall("AddPersonInfo", (char *)sendbuf, 0, (char **)&amp;sendbuf, &amp;len, 0 ) == -1 )
{
return -2;
}
else
{
return 0;
}
};
 
能否给个在Delphi中调用Tuxedo中间件的例子。
 
顶部