免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 949 | 回复: 4
打印 上一主题 下一主题

请教一个pro*c预编译问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-09 11:04 |只看该作者 |倒序浏览
请问高手一个pro*c预编译问题。
我现在的系统环境是Solaris9 + Oracle8.1.7,安装了gcc 3.3.2 for Solaris 9 Intel包。写了一段pro*c的程序(不存在语法问题,是以前开发过的项目,只不过是在windows环境下开发的),打算实现在Solaris下面也能正常编译运行。
×××××××××××××××××××××××××××××××××××
1.以下是对应的.pc原程序部分代码:
        EXEC SQL
                SELECT MESENAIYOU
                        INTO :sMESENAIYOU
                FROM MS_MSG
                        WHERE MESE_CD = :msg;
×××××××××××××××××××××××××××××××××××
2.以下是以前在windows下面编译后的.c文件对应的代码:
        /* EXEC SQL
                SELECT MESENAIYOU
                        INTO :sMESENAIYOU
                FROM MS_MSG
                        WHERE MESE_CD = :msg; */

{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 2;
sqlstm.sqladtp = &
sqlstm.sqltdsp = &
sqlstm.stmt = "select MESENAIYOU into :b0  from MS_MSG where MESE_CD=:b1";
sqlstm.iters = (unsigned int  )1;
sqlstm.offset = (unsigned int  )69;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char  *)&
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int  )0;
sqlstm.sqhstv[0] = (         void  *)sMESENAIYOU;
sqlstm.sqhstl[0] = (unsigned int  )161;
sqlstm.sqhsts[0] = (         int  )0;
sqlstm.sqindv[0] = (         void  *)0;
sqlstm.sqinds[0] = (         int  )0;
sqlstm.sqharm[0] = (unsigned int  )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (         void  *)msg;
sqlstm.sqhstl[1] = (unsigned int  )0;
sqlstm.sqhsts[1] = (         int  )0;
sqlstm.sqindv[1] = (         void  *)0;
sqlstm.sqinds[1] = (         int  )0;
sqlstm.sqharm[1] = (unsigned int  )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}
×××××××××××××××××××××××××××××××××××
3.现在的问题是我在Solaris下预编译后,生成了对应的.c文件,但是那部分sql语句并没有发生任何变化。这样一来,在接下来用gcc进行编译的时候肯定会出问题的。
/usr/local/bin/cpp xxxx.pc -o xxxx.c -I /oracle/precomp/public
我怀疑是这句命令写的不对,请高手帮忙指点一下。

论坛徽章:
0
2 [报告]
发表于 2004-05-09 11:13 |只看该作者

请教一个pro*c预编译问题。

你可以看看示例程序,你有安装的话,应该在

$ORACLE_HOME/precomp/demo/proc 下面,很详细的。

论坛徽章:
0
3 [报告]
发表于 2004-05-09 11:19 |只看该作者

请教一个pro*c预编译问题。

请问楼上的,我的$(ORACLE_HOME)/bin下面没有proc。请问是什么原因呢?

论坛徽章:
0
4 [报告]
发表于 2004-05-09 11:20 |只看该作者

请教一个pro*c预编译问题。

[quote]原帖由 "Vincent_Lee"]请问楼上的,我的$(ORACLE_HOME)/bin下面没有proc。请问是什么原因呢?[/quote 发表:


你装了客户端没有呢?

论坛徽章:
0
5 [报告]
发表于 2004-05-09 11:53 |只看该作者

请教一个pro*c预编译问题。

不怪楼主
proc不是默认安装的。
这没关系,补上就行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP