⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.cpp

📁 tuxede下面的编程
💻 CPP
字号:
#include <stdio.h>
#include <atmi.h>
#include <userlog.h>


EXEC SQL INCLUDE sqlca;
EXEC ORACLE OPTION (RELEASE_CURSOR = YES);

EXEC SQL BEGIN DECLARE SECTION;
	char    c_ename[20];
	EXEC SQL VAR  c_ename 		IS STRING(20);
EXEC SQL END DECLARE SECTION;

int tpsvrinit(argc, argv)
int argc;
char *argv[];
{
	if(tpopen()==-1)
	{
		userlog("tpopen() failure\n");	
		return -2;
	}
	return 0;
}
void tpsvrdone()
{
	if(tpclose()==-1)
	{
		userlog("tpclose() failure\n");	
	}
}

ENQ(TPSVCINFO *rqst)
{
	char *reqstr;	
	long len;	
	TPQCTL qctl;	

	    
	reqstr=rqst->data;
	 EXEC SQL SELECT ename into :c_ename from EMP where empno=1000;
        if(sqlca.sqlcode !=0)
	{
		userlog("%d, %s\n",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
		strcpy(reqstr,(char *)sqlca.sqlerrm.sqlerrmc);
		tpreturn( TPFAIL, 0, reqstr, 0, 0 );
	}
	if(tpbegin(30,0) == -1)
	{
		userlog("tpbegin() fail=%s\n",tpstrerror(tperrno));
		strcpy(reqstr,tpstrerror(tperrno));
		tpreturn( TPFAIL, 0, reqstr, 0, 0 );
	}
	
	qctl.flags = 0;
	if (tpenqueue("QSPACE", "DEMOQ", (TPQCTL *)&qctl,(char *)reqstr,0, 0) == -1) 
	{
		userlog("tpenqueue() failure: %s\n",tpstrerror(tperrno));
		if (tperrno == TPEDIAGNOSTIC) 
		{
			printf("Queue manager diagnostic %ld\n",qctl.diagnostic);
		}
		strcpy(reqstr,tpstrerror(tperrno));
		tpreturn( TPFAIL, 0, reqstr, 0, 0 );
       }
       EXEC SQL delete from EMP where empno=1000;
	if(sqlca.sqlcode !=0)
	{
		userlog("%d, %s\n",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
		strcpy(reqstr,(char *)sqlca.sqlerrm.sqlerrmc);
		if(tpabort(0)==-1)
		{
			userlog("tpabort() failure:%s\n",tpstrerror(tperrno));	
			strcpy(reqstr,tpstrerror(tperrno));
		}
		tpreturn( TPFAIL, 0, reqstr, 0, 0 );
	}
	
	if(tpcommit(0) == -1)
	{
		userlog("tpcommit failure: %s\n",tpstrerror(tperrno));
		strcpy(reqstr,tpstrerror(tperrno));
		tpreturn( TPFAIL, 0, reqstr, 0, 0 );
	}
	strcpy(reqstr,"ENQ success!");
	tpreturn( TPSUCCESS, 0, reqstr, 0, 0 );
	
}




DEQ(TPSVCINFO *rqst)
{
	
	char *reqstr;	
	long len;	
	TPQCTL qctl;	

	
        reqstr=rqst->data;
	qctl.flags = 0;
	if(tpbegin(30,0) == -1)
	{
		userlog("tpbegin() fail=%s\n",tpstrerror(tperrno));
	}
	if (tpdequeue("QSPACE", "DEMOQ", (TPQCTL *)&qctl, (char **)&reqstr,&len, TPNOTIME) == -1) 
        {
		userlog("tpdequeue() failure: %s\n",tpstrerror(tperrno));
		if (tperrno == TPEDIAGNOSTIC) 
                {
			userlog("Queue manager diagnostic %ld\n",qctl.diagnostic);
		}
		strcpy(reqstr,tpstrerror(tperrno));
		tpreturn( TPFAIL, 0, reqstr, 0, 0 );
	}
	userlog("dequeue data:%s\n",reqstr);
	strcpy(c_ename,reqstr);
	EXEC SQL INSERT INTO ss values(:c_ename);
	if(sqlca.sqlcode !=0)
	{
		userlog("%d, %s\n",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
		strcpy(reqstr,(char *)sqlca.sqlerrm.sqlerrmc);
		if(tpabort(0)==-1)
		{
			userlog("tpabort() failure: %s\n",tpstrerror(tperrno));	
			strcpy(reqstr,tpstrerror(tperrno));
		}
		tpreturn( TPFAIL, 0, reqstr, 0, 0 );
	}
	if(tpcommit(0) == -1)
	{
		userlog("tpcommit() failure: %s\n",tpstrerror(tperrno));
	}
	strcpy(reqstr,"DEQ success!");
	tpreturn( TPSUCCESS, 0, reqstr, 0, 0 );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -