当前位置:首页 » 编程软件 » proc编译pc报错

proc编译pc报错

发布时间: 2023-02-06 09:40:32

① 有关c语言的proc连接oracle数据库的问题

在main.pc的insert 函数前加上extern


extern void insert (char password_[6],char id_[20],int balance_);

linux编译C语言错误

编译时加参数 -lecpg

③ PROC编译

可以把问题描述清楚一点,这样才能更快获得帮助。
使用proc来转换源文件的命令通常是:
proc parse=full USERID=user/pwd@dns sqlCHECK=SEMANTICS yourfile.pc include="/oracle/app/oracle/proct/9.2.0/precomp/public"
其中,parse=full一般是固定的,
USERID后面跟上连接到oracle数据库的连接字符串,格式为:用户/密码@服务器名
SQLCHECK=SEMANTICS 指明SQLCHECK参数,一般也是固定的
include=&quo肌埂冠忌攉涣圭惟氦隶t;/oracle/app/oracle/proct/9.2.0/precomp/public"指明预编译时候需要的头文件路径
其中/oracle/app/oracle/proct/9.2.0是你的oracle数字路径,后面的precomp/public是固定的
yourfile.pc 你想要转换的使用嵌入式SQL编写好的源文件。
执行之后,如果没错,就会生成.c源文件,编译就可以了。
如果执行出错,会生成*.lis文件,指出出错的地方,按照错误说明修改之后再试。
需要注意相关环境变量要配置正确,.pc源文件里所用到的表,字段,存储过程等在数据库中要存在,并且,连接上去的用户要有相关表的访问权限。

④ proc的编译

sqlcxt 这个变量没有声明

检查你的C文件,是否声明,或者是否赋值?

⑤ linux下,C++与proc的编译出的静态库调用时报错,求助

在编译命令行中,将使用的静态库文件放在源文件后面就可以了。比如: gcc -L/usr/lib myprop.c libtest.a libX11.a libpthread.a -o myprop 其中-L/usr/lib指定库文件的查找路径,编译器默认在当前目录下先查找指定的库文件。

⑥ proc编译报错Duplicate symbol "sqlca" in files DataInput.o and DataInterface.o

看ld命令的提示信息,意思是你两个目标文件中有相同的全局变量,所以,报重复定义错误。
使用proc转换的时候,每个.pc文件,都会生成一个类型为sqlca的结构体变量,并且这个变量都是全局变量,你可以打开生成后的C源文件,搜索sqlca结构体看看。proc程序不会因为你多个.pc文件来重新对sqlca结构体变量重命名,这就导致每个源文件里面都有一个相同名字的sqlca结构体全局变量,编译的时候不会报错,链接的时候就会报上面的错误了。
建议是把数据库相关的操作都写在一个文件中,这样就不会产生类似的问题了。嵌入式SQL虽然写起来方便,但是也不是任何项目都适用,它适合结构简单,需要快速开发的项目,你这种如果需要在多个文件中都操作数据库,就会有问题。

⑦ 怎么在vs2008编译已经用proc预编译后的.c文件

你的lib库没有放进去,在项目设置里面有个添加lib库的文件和文件路径的地方
把你sql链接库放在那个位置

⑧ 编译proc 出现这样的错误是什么原因

虽然我没有看到你的具体的程序源代码,但是根据我多年编写程序源代码的经验,可以给你提供如下一些信息,供你参考。关于编程过程中出现的错误类型有很多种,其中最容易调试的程序错误是:
(1)、在编写源程序过程中出现的各种语法错误。这种错误主要是由于刚刚开始学习编程,对编程语言的语句、以及语法结构还不是很清晰造成的,这种错误是最容易进行调试的,因为语法错误,编译器连编译都无法通过(通常会显示出来具体是哪一行出现错误),这样的话,你就可以直接到出错的那一行进行修改源代码了;
(2)、若是经过一段时间的上机练习,对初始编程已经较为熟练了、且语法错误较少了之后,之后就会遇到更为复杂、并且难于调试的语义错误。例如在 C 语言中,对于如下代码:

void main( )
{
int n ;
scanf("%d", &n) ;
if( n == 100 )
printf(" n is 100 !\n") ;
else
printf(" n is not 100 !\n") ;
}
在逻辑判断语句:if( n == 100) 中,如果误将“==”(逻辑等于)写成了“=”(赋值等于),那么在 scanf("%d", &n) 语句中,无论你输入的 n 等于多少,一旦执行 if 语句,那么 将 100 这个数字赋给变量 n,则该逻辑表达式的值总是 1,程序的运行结果必定总是输出:n is 100。
而该程序的实际思路是:从键盘输入一个整数,如果该整数等于 100,则输出:n is 100 !如果输入的整数不等于 100 的话,则输出:n is not 100 !
像这样的逻辑错误(在编译源程序时,C 语言编译器是检查不出来的),如果没有丰富的程序调试经验,程序调试起来就是非常困难的。

所以说,如果想学习编程,必须要勤于上机编辑、调试、运行程序,而不能够只是在书本上阅读程序。只有这样,才能够在较短的时间内,使自己的编程水平有一个较大的提高。

⑨ vc++6.0编译时出现'proc' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

如果你的Oracle在vc之后安装的 则需要配置路径。要把proc这个可执行文件包含到路径中
具体的方法是 在工具下面找选项,在选项的页面下 选择可执行文件 这一项。然后将Oracle中proc文件的路径 添加进去。这里说的不够具体。你可以继续查怎么配置
虽然这个问题已经过去了很久。但希望给以后看的人一点启示。

⑩ C++ 连接Oracle error LNK2019: unresolved external symbol _sqlcxt referenced in function _main

--取两个日期间的工作天数
SELECT COUNT(*) INTO vn
FROM (SELECT vod + ROWNUM - 1 RN
FROM DUAL
CONNECT BY ROWNUM <= vnd - vod)
WHERE TO_CHAR(RN, 'D') BETWEEN 2 AND 6;

--返回数字
RETURN vn;

--异常判断并返回-1
EXCEPTION
WHEN OTHERS THEN
RETURN -1;
END fun_get_workdays;

然后select id,fun_get_workdays(begin_date date, end_date date) from table

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:829
制作脚本网站 发布:2025-10-20 08:17:34 浏览:1093
python中的init方法 发布:2025-10-20 08:17:33 浏览:799
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:964
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:855
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1207
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:428
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:308
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:983
python股票数据获取 发布:2025-10-20 07:39:44 浏览:952