📄 oradyncli.c
字号:
/********************************************************************
Author:sylpjx Email:sylpjx-s@163.net
MODIFY TIME: 2003-3 dev2dev ID: sylpjx
PROGRAM NAME: OraDynCli.c
程序说明:这个程序是ORACLE的动态方法四的测试程序,
采用的是TUXEDO中的TPCALL(同步通信方式)
*********************************************************************/
#include <stdio.h>
#include "atmi.h"
#include "fml.h"
#include "userlog.h"
#include "userfml.h" /*用户自己定义的头文件*/
#if defined(__STDC__) || defined(__cplusplus)
main(int argc, char *argv[])
#else
main(argc, argv)
int argc;
char *argv[];
#endif
{
char *sendbuf;
FBFR *RcvBuf;
long sendlen, rcvlen;
int ret;
FILE *fp;
fp = fopen("fmlReturn.txt","w");/*打开fmlReturn.txt,如果文件不存在,则创建后打开*/
if (fp == NULL)
{
userlog("open fmlReturn.txt failed\n");
exit(1);
}
/*创建一个应用*/
if (tpinit((TPINIT *) NULL) == -1) {
(void) fprintf(stderr, "Tpinit failed\n");
exit(1);
}
sendlen = 1024;/*假设SQL语句的最大长度只能小于1024*/
/* Allocate STRING and FML buffers for the request and the reply
分配缓冲区*/
if((sendbuf = (char *) tpalloc("STRING", NULL, sendlen)) == NULL) {
(void) fprintf(stderr,"Error allocating send buffer\n");
tpterm();
exit(1);
}
if ((RcvBuf = (FBFR *)tpalloc("FML", NULL, 8*1024)) == NULL)/*为返回的值申请了8K字节的长度*/
{
fprintf(stderr, "Tpalloc for string buffer failed: %s\n",tpstrerror(tperrno));
tpfree((char *)sendbuf);
tpterm();
exit(1);
}
(void) strcpy(sendbuf, "select * from emp");/*向服务端发送的SOL语句*/
/* Request the service TOUPPER, waiting for a reply */
ret = tpcall("DYN4", (char *)sendbuf, 0, (char **)&RcvBuf, &rcvlen, (long)0);
if(ret == -1) {
(void) fprintf(stderr, "Can't send request to service TOUPPER\n");
(void) fprintf(stderr, "Tperrno = %d\n", tperrno);
tpfree(sendbuf);
tpfree((char *)RcvBuf);/*释放FBFR类型的缓冲*/
tpterm();
exit(1);
}
/*程序为了调试加入的语句,现在只是为了显示从服务端传回的数据的正确性,所以运用这个函数来在文件中打印显示结果*/
Ffprint(RcvBuf,fp);
fclose(fp); /*关闭文件*/
/* Free Buffers & Detach from System/T */
/*释放缓冲*/
tpfree(sendbuf);
tpfree((char *)RcvBuf);
tpterm();
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -