首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > Tuxedo非XA连接Oracle
【标  题】:Tuxedo非XA连接Oracle
【关键字】:Tuxedo,XA,Oracle
【来  源】:http://blog.csdn.net/leeproer/archive/2006/10/25/1350718.aspx

Tuxedo非XA连接Oracle

[服务端编写] 

/**
 * 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中,如此只需要一次数据库连接开关。

来看看一个小小的问题:【上一篇】
ACCP_S1_基本算法:【下一篇】
【相关文章】
  • Oracle RAC 10g stop Error
  • Oracle 10g RAC dbca create database
  • Oracle 10g rac install-execute root.sh
  • oracle监控脚本双机的个人分析
  • ORACLE分析表和索引的脚本
  • 在ORACLE里按用户名重建索引的方法
  • XAML 学习(1)
  • oracle口令文件认证与密码认证
  • oracle数据库同步
  • ORACLE系统设计之确定应用程序类型
  • 【随机文章】
  • (转载)简单工厂,工厂方法和抽象工厂模式
  • 各种数据库的连接方法
  • Whidbey中C运行时函数具备防缓冲溢出功能
  • 贪吃蛇 J2ME 的实现 (简单程序,练练手艺) 0.1版本
  • 9. Lexical structure
  • 写了一个ASP.Net2.0中使用"客户端回调"实现无刷新例子
  • 用Automake生成Makefile一例[经过测试]
  • javac - Java 编程语言编译器详解
  • 进度条控件
  • 如何在 FreeBSD 上使用 CD 刻录机
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.