Tuxedo非XA连接Oracle
2006-10-25 15:14
429 查看
[服务端编写]
/**
* FILE : server.pc
* AUTHOR : LeeQ
* CREATE : 2006/08/08
* DESC : A simple Proc program for Tuxedo server.
**/
#include <stdio.h>
#include <ctype.h>
#include <atmi.h> /* for tuxedo server */
#include <string.h>
#include <time.h>
EXEC SQL INCLUDE SQLCA;
int execsql()
{
EXEC SQL BEGIN DECLARE SECTION;
char username[20];
char password[20];
char dbname[10];
char data[128];
EXEC SQL END DECLARE SECTION;
strcpy(username, "scott");
strcpy(password, "tiger");
strcpy(dbname, "ora9i");
/* connect to Oracle database */
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dbname;
printf("/nConnected to ORACLE : [%d]/n", sqlca.sqlcode);
EXEC SQL DECLARE cur_sor CURSOR FOR SELECT ENAME FROM EMP;
EXEC SQL OPEN cur_sor;
while(1)
{
memset(data, 0, sizeof(data));
EXEC SQL FETCH cur_sor INTO :data;
if(sqlca.sqlcode == 1403)
{
break;
}
printf("[%s]/n", data);
}
EXEC SQL CLOSE cur_sor;
EXEC SQL COMMIT WORK RELEASE;
return 0;
}
void TUXFILE(TPSVCINFO *rqst)
{
execsql();
tpreturn(TPSUCCESS, 0, NULL, 0L, 0);
}
<编译此程序如下>
proc include=$TUXDIR/include server.pc
/*此处如遇到编译无法导入头文件请检查proc的头文件查找路径。在$ORACLE_HOME/PRECOMP...下面*/
buildserver -f server.c -o server -s TUXFILE -f "-I$ORACLE_HOME/include -L$ORACLE_HOME/lib -lclntsh"
[客户端编写]
使用tpcall调用Tuxedo服务TUXFILE即可输出查询到的数据。(此处不再张贴)
这是一个简单的Tuxedo服务连接Oracle程序仅在展示如何在编写Tuxedo服务的时候直接连接Oracle。
优化此程序后可以使连接和断开数据库操作在服务启动时和终止时进行。即将连接数据库写在tpsvrinit中,
断开数据库写在tpsvrdone中,如此只需要一次数据库连接开关。
/**
* FILE : server.pc
* AUTHOR : LeeQ
* CREATE : 2006/08/08
* DESC : A simple Proc program for Tuxedo server.
**/
#include <stdio.h>
#include <ctype.h>
#include <atmi.h> /* for tuxedo server */
#include <string.h>
#include <time.h>
EXEC SQL INCLUDE SQLCA;
int execsql()
{
EXEC SQL BEGIN DECLARE SECTION;
char username[20];
char password[20];
char dbname[10];
char data[128];
EXEC SQL END DECLARE SECTION;
strcpy(username, "scott");
strcpy(password, "tiger");
strcpy(dbname, "ora9i");
/* connect to Oracle database */
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dbname;
printf("/nConnected to ORACLE : [%d]/n", sqlca.sqlcode);
EXEC SQL DECLARE cur_sor CURSOR FOR SELECT ENAME FROM EMP;
EXEC SQL OPEN cur_sor;
while(1)
{
memset(data, 0, sizeof(data));
EXEC SQL FETCH cur_sor INTO :data;
if(sqlca.sqlcode == 1403)
{
break;
}
printf("[%s]/n", data);
}
EXEC SQL CLOSE cur_sor;
EXEC SQL COMMIT WORK RELEASE;
return 0;
}
void TUXFILE(TPSVCINFO *rqst)
{
execsql();
tpreturn(TPSUCCESS, 0, NULL, 0L, 0);
}
<编译此程序如下>
proc include=$TUXDIR/include server.pc
/*此处如遇到编译无法导入头文件请检查proc的头文件查找路径。在$ORACLE_HOME/PRECOMP...下面*/
buildserver -f server.c -o server -s TUXFILE -f "-I$ORACLE_HOME/include -L$ORACLE_HOME/lib -lclntsh"
[客户端编写]
使用tpcall调用Tuxedo服务TUXFILE即可输出查询到的数据。(此处不再张贴)
这是一个简单的Tuxedo服务连接Oracle程序仅在展示如何在编写Tuxedo服务的时候直接连接Oracle。
优化此程序后可以使连接和断开数据库操作在服务启动时和终止时进行。即将连接数据库写在tpsvrinit中,
断开数据库写在tpsvrdone中,如此只需要一次数据库连接开关。
相关文章推荐
- tuxedo9.1与oracle非XA连接时服务起不了
- tuxedo 和oracle连接的几种方法
- tuxedo中不采用XA连接oracle数据库的例子 (转自BEA网站)
- 开发环境搭建4:linux下tuxedo与oracle连接
- C#中不使用Oracle Client,直接连接Oracle数据库
- 通过PI-OLEDB实现ORACLE对PI系统的异构连接
- 不安装Oracle客户端,使用PLSQL连接Oracle服务器
- 详解PL/SQL Developer连接本地Oracle 11g 64位数据库
- jsp连接Oracle错误:ocijdbc8.dll already loaded 解决方法
- C#在64位操作系统上连接Oracle的问题和解决方案(转贴)
- lazarus使用zeos控件与oracle的连接配置
- Oracle 多行记录合并/连接/聚合字符串的几种方法
- Oracle 连接查询(mysql、 sql server一样)
- Oracle 外连接(outer join)
- PLSQL developer Windows 7/8 连接不上64位Oracle 的解决方法
- c#通过oledb连接Oracle代码
- PL/SQL Developer连接本地Oracle 11g 64位数据库
- C#连接oracle实现增删改查
- plsql连接oracle问题
- Client使用c#和odp.net连接server oracle