主题:小弟初学什么都补懂,求帮忙~~~急
1、 通过C++ Builder设计开发客户端,将表[NAME]_CALL_TICKET_STAT中的结果按照一定条件显示在客户端界面中;
2、 [NAME]_CALL_TICKET_STAT表结构及内容见1.1中有关说明;
3、 条件包括:
1) 选定日期时间段;
2) 选定帐目类型;
3) 选定主叫号码;
4、 界面显示内容包括主叫、被叫、帐目类型、原始费用、优惠费用、时长及通话时间等;
5、 要求写一后台TUXEDO服务程序,客户端向TUXEDO服务端调用该服务完成相关查询结果的显示;
6、 后台TUXEDO接收来自客户端的服务请求,服务请求参数包括:日期时间段、帐目类型、主叫号码;
7、 完成客户及服务端编译;
8、 附后有TUXEDO服务模板,按模板完成相应服务编写;
#include <base/platform.h>
#include <UtilPackage.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <rating_func/ibacom.h>
#include <rating_func/BaseFunction.h>
#include <publiclib.h>
#include <sqlca.h>
using namespace std;
#ifdef _WIN32
#define DLLIMPORT _declspec(dllimport)
#define DLLEXPORT _declspec(dllexport)
#define CDECL _cdecl
#else
#define DLLIMPORT
#define DLLEXPORT
#define CDECL
#endif
#define ORA7
#if defined (DB2)
#define SQLNOTFOUND 100
#include <sql.h>
#define DATABASE "cicstest"
#elif defined (ORA7)
#define SQLNOTFOUND 1403
#endif
#ifdef __cplusplus
extern "C"
#endif
void
#if defined(__STDC__) || defined(__cplusplus)
TEST(TPSVCINFO *rqst)
#else
TEST(rqst)
TPSVCINFO *rqst;
#endif
{
EXEC SQL BEGIN DECLARE SECTION;
char Q_data_group_code[4];
char Q_data_group_name[60];
char Q_obj_type[2];
long staff_id;
EXEC SQL END DECLARE SECTION;
int counts=0;
FILE *fp;
/*错误信息长度*/
char errmsg[81];
/*临时变量*/
char ctemp[50];
flag[0]='\0';
ctemp[0]='\0';
/*初始化EasyTp*/
if(InitEasyTp(rqst)<0)
{
ExitEasyTp();
return ;
}
GetValue("flag",flag);
GetValue("staff_id",ctemp);
staff_id=atol(ctemp);
userlog("staff_id=%d",staff_id);
EXEC SQL DECLARE c1 CURSOR FOR
SELECT data_group_code,data_group_name,obj_type FROM data_group_code;
EXEC SQL OPEN c1;
if (sqlca.sqlcode<0)
{
userlog("查询分类数据报错!sqlca.sqlcode=%d",sqlca.sqlcode);
SetValue("errno","-1");
SetValue("errmsg","查询权限时数据库错!");
ExitEasyTp();
return ;
}
BeginWrite();
RsCreate(3);
while(1)
{
EXEC SQL FETCH c1 INTO :Q_data_group_code,:Q_data_group_name,:Q_obj_type;
if (sqlca.sqlcode==SQLNOTFOUND) break;
if (sqlca.sqlcode<0)
{
userlog("查询分类数据报错!sqlca.sqlcode=%d",sqlca.sqlcode);
EXEC SQL CLOSE c1;
SetValue("errno","-1");
SetValue("errmsg","查询权限时数据库错!");
ExitEasyTp();
return ;
}
stringTrim(Q_data_group_code);
stringTrim(Q_data_group_name);
stringTrim(Q_obj_type);
RsAddRow();
RsSetCol(1,Q_data_group_code);
RsSetCol(2,Q_data_group_name);
RsSaveRow();
}
EXEC SQL CLOSE c1;
SetValue("errno","1");
ExitEasyTp();
userlog("处理成功!");
return;
}
2、 [NAME]_CALL_TICKET_STAT表结构及内容见1.1中有关说明;
3、 条件包括:
1) 选定日期时间段;
2) 选定帐目类型;
3) 选定主叫号码;
4、 界面显示内容包括主叫、被叫、帐目类型、原始费用、优惠费用、时长及通话时间等;
5、 要求写一后台TUXEDO服务程序,客户端向TUXEDO服务端调用该服务完成相关查询结果的显示;
6、 后台TUXEDO接收来自客户端的服务请求,服务请求参数包括:日期时间段、帐目类型、主叫号码;
7、 完成客户及服务端编译;
8、 附后有TUXEDO服务模板,按模板完成相应服务编写;
#include <base/platform.h>
#include <UtilPackage.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <rating_func/ibacom.h>
#include <rating_func/BaseFunction.h>
#include <publiclib.h>
#include <sqlca.h>
using namespace std;
#ifdef _WIN32
#define DLLIMPORT _declspec(dllimport)
#define DLLEXPORT _declspec(dllexport)
#define CDECL _cdecl
#else
#define DLLIMPORT
#define DLLEXPORT
#define CDECL
#endif
#define ORA7
#if defined (DB2)
#define SQLNOTFOUND 100
#include <sql.h>
#define DATABASE "cicstest"
#elif defined (ORA7)
#define SQLNOTFOUND 1403
#endif
#ifdef __cplusplus
extern "C"
#endif
void
#if defined(__STDC__) || defined(__cplusplus)
TEST(TPSVCINFO *rqst)
#else
TEST(rqst)
TPSVCINFO *rqst;
#endif
{
EXEC SQL BEGIN DECLARE SECTION;
char Q_data_group_code[4];
char Q_data_group_name[60];
char Q_obj_type[2];
long staff_id;
EXEC SQL END DECLARE SECTION;
int counts=0;
FILE *fp;
/*错误信息长度*/
char errmsg[81];
/*临时变量*/
char ctemp[50];
flag[0]='\0';
ctemp[0]='\0';
/*初始化EasyTp*/
if(InitEasyTp(rqst)<0)
{
ExitEasyTp();
return ;
}
GetValue("flag",flag);
GetValue("staff_id",ctemp);
staff_id=atol(ctemp);
userlog("staff_id=%d",staff_id);
EXEC SQL DECLARE c1 CURSOR FOR
SELECT data_group_code,data_group_name,obj_type FROM data_group_code;
EXEC SQL OPEN c1;
if (sqlca.sqlcode<0)
{
userlog("查询分类数据报错!sqlca.sqlcode=%d",sqlca.sqlcode);
SetValue("errno","-1");
SetValue("errmsg","查询权限时数据库错!");
ExitEasyTp();
return ;
}
BeginWrite();
RsCreate(3);
while(1)
{
EXEC SQL FETCH c1 INTO :Q_data_group_code,:Q_data_group_name,:Q_obj_type;
if (sqlca.sqlcode==SQLNOTFOUND) break;
if (sqlca.sqlcode<0)
{
userlog("查询分类数据报错!sqlca.sqlcode=%d",sqlca.sqlcode);
EXEC SQL CLOSE c1;
SetValue("errno","-1");
SetValue("errmsg","查询权限时数据库错!");
ExitEasyTp();
return ;
}
stringTrim(Q_data_group_code);
stringTrim(Q_data_group_name);
stringTrim(Q_obj_type);
RsAddRow();
RsSetCol(1,Q_data_group_code);
RsSetCol(2,Q_data_group_name);
RsSaveRow();
}
EXEC SQL CLOSE c1;
SetValue("errno","1");
ExitEasyTp();
userlog("处理成功!");
return;
}