免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: xinxinhao
打印 上一主题 下一主题

[Tuxedo] 在tuxedo里不能访问oracle表 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-06-27 05:55 |只看该作者

回复 #1 xinxinhao 的帖子

我还想问下,需要tpsvrdone()吗?这个不是Tuxedo自己管理,默认添加的吗?:
==========
服务器server程序如下:
oracleserv.pc

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <atmi.h>
#include <userlog.h>
exec sql include sqlca;

tpsvrinit(int argc,char *argv[])
{
        if(tpopen()==-1){
                printf("error to connect to oracle!\n");
        }
        printf("the oracleserv successfully to connect to db2 in linux!\n");
        return 0;
}

ORACLES(TPSVCINFO *rqst)
{
        exec sql begin declare section;
                char db_string[50];
        exec sql end declare section;
        int i=0;
        for(i=0;i<rqst->len-1;i++){
                db_string=rqst->data;
        }
        exec sql delete from system.hmptest where username=:db_string;
        if(sqlca.sqlcode!=0){
                printf("delete error!\n");
                tpreturn(TPFAIL,0,NULL,0,0);
        }
        tpreturn(TPSUCCESS,0,rqst->data,0L,0);
}

tpsvrdone()
{
        if(tpclose()==-1){
                printf("oracleserv close error!\n");
                return;
        }
        printf("oracleserv disconnected!\n");
        return;
}

论坛徽章:
0
12 [报告]
发表于 2009-06-27 05:57 |只看该作者

回复 #1 xinxinhao 的帖子

各位高手们先在这里给个简单的方向性的说法呀?!

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
13 [报告]
发表于 2009-06-28 11:32 |只看该作者
[quote]原帖由 simhare 于 2009-6-27 05:44 发表

--------------------------------------
怎么"在tpsvrinit()中打开数据库!"?
EXEC SQL BEGIN DECLARE SECTION;
                char  *uid="pw/pw@wilson";
                float salary;
        EXEC SQL END DECLARE SECTION;   
        EXEC SQL CONNECT :uid;
        if(tpopen()==-1){ //改成 SQL_CODE?proc的错误状态,有点忘了。
                userlog("error to connect to oracle!\n");
                return -1;
        }

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
14 [报告]
发表于 2009-07-06 17:06 |只看该作者
原帖由 simhare 于 2009-6-27 05:57 发表
各位高手们先在这里给个简单的方向性的说法呀?!

在tuxedo服务器里最好使用OCI,我们用了一个开源接口sqlora8.
你在客户端发送一个SQL语句,到服务器后prepare这个语句,执行,并把结果以字符串形式返回。

我们搞了一个更复杂的工具(用起来很简单),帮助你生成SQL语句,执行,并以JSON格式返回结果集。
http://www.itpub.net/viewthread. ... p;extra=&page=1

[ 本帖最后由 yulihua49 于 2009-7-6 17:09 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP