求助,我写了一个tuxedo里面嵌入Pro*C的程序,可以用buildserver编译报错!_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3786 | 回复: 1   主题: 求助,我写了一个tuxedo里面嵌入Pro*C的程序,可以用buildserver编译报错!        下一篇 
xuefeng
注册用户
等级:上士
经验:315
发帖:69
精华:0
注册:2011-8-17
状态:离线
发送短消息息给xuefeng 加好友    发送短消息息给xuefeng 发消息
发表于: IP:您无权察看 2014-9-28 14:57:00 | [全部帖] [楼主帖] 楼主

#include <stdio.h>

#include <ctype.h>

#include "friend.h"

#include <sqlcode.h>

#include <atmi.h> /* tuxedo Header File */

#include <userlog.h> /* TUXEDO Header File */

/* tpsvrinit is executed when a server is booted, before it begins

processing requests. It is not necessary to have this function.

Also available is tpsvrdone (not used in this example), which is

called at server shutdown time.

*/

EXEC SQL INCLUDE sqlca;

EXEC SQL begin declare section;

static long friend_id;

static char fname[10];

static char fmobile[14];

static char conn[20];

EXEC SQL end declare section;

#ifdef __cplusplus

extern "C"

#endif

void

#if defined(__STDC__) || defined(__cplusplus)

ADD_FRIEND(TPSVCINFO *transb)

#else

ADD_FRIEND(transb)

TPSVCINFO *transb;

#endif

{

    struct friendv *transv;

    transv = (struct friendv*)transb->data;

    friend_id=transv->friend_id;

    strcpy(fname,transv->fname);

    strcpy(fmobile,transv->fmobile);

    strcpy(conn,"admin/keke@denver");

    EXEC SQL CONNECT :conn;

    EXEC SQL insert into FRIEND(FRIEND_ID,NAME,MOBILE)

    value(:friend_id,:fname,:fmoblie);

    if(SQLCODE != SQL_OK){

    userlog("Cannot insert into FRIEND");

    tpreturn(TPFAIL,0,transb->data,0L,0);

    }

    EXEC SQL ROLLBACK WORK RELEASE;

    tpreturn(TPSUCCESS, 0, transb->data, 0L, 0);

}

这个代码编译就报错

 [oracle@Oracle9iDemo simpapp]$ buildserver -f viewserv.c -o viewserv

CMDTUX_CAT:4188: WARN: server built without the -s option cannot advertise services.

viewserv.c:17:21: sqlcode.h: No such file or directory

viewserv.c:26: syntax error before "SQL"

viewserv.c:26: warning: data definition has no type or storage class

viewserv.c:27: syntax error before "SQL"

viewserv.c:27: warning: data definition has no type or storage class

viewserv.c:32: syntax error before "SQL"

viewserv.c:32: warning: data definition has no type or storage class

viewserv.c: In function `ADD_FRIEND':

viewserv.c:91: dereferencing pointer to incomplete type

viewserv.c:92: dereferencing pointer to incomplete type

viewserv.c:93: dereferencing pointer to incomplete type

viewserv.c:95: `EXEC' undeclared (first use in this function)

viewserv.c:95: (Each undeclared identifier is reported only once

viewserv.c:95: for each function it appears in.)

viewserv.c:95: syntax error before "SQL"

viewserv.c:99: `SQLCODE' undeclared (first use in this function)

viewserv.c:99: `SQL_OK' undeclared (first use in this function)

viewserv.c:103: syntax error before "SQL"

CMDTUX_CAT:1832: ERROR: can't execute cc -m32 -I$TUXDIR/include -o viewserv BS-79c9.c -L${TUXDIR}/lib viewserv.c -ltux -lbuft -lfml -lfml32 -lengine -ldl -lpthread




赞(0)    操作        顶端 
koei123
注册用户
等级:大校
经验:4196
发帖:16
精华:0
注册:2011-7-21
状态:离线
发送短消息息给koei123 加好友    发送短消息息给koei123 发消息
发表于: IP:您无权察看 2014-9-30 11:11:20 | [全部帖] [楼主帖] 2  楼

如果楼主写的是Pro*C程序,需要:
(1) Oracle自带的proc命令做预处理,由。pc文件生成.c文件;
(2) 在编译生成的.c文件时,要把Pro*C的必要头文件目录放在-I中;
(3) 链接时,要把Pro*C的库文件目录放在-L中,并在多个-l中以此列出需要的库文件;
楼主上面的错误,基本上就是没有用proc预处理的报错。。。



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论