读书人

急Pro*C的有关问题想了解怎么在Wind

发布时间: 2012-02-24 16:30:38 作者: rapoo

急!Pro*C的问题,想了解如何在Windows下搭建Pro*C的环境
我window2000装有oracle的server,在cmd中sqlplus能正常访问我的数据库,装有gcc编译器和windows版的bash,我在window下写了一个最简单的pro*c程序就是连数据库,连成功了就输出“success”,程序名sample.pc
输入:proc parse=none sample.pc
编译没报错,生成sample.c
输入:g++ -o sample sample.c
出错:undefine reference sqlcxt(...)
然后我查找系统生成sample.c中有一段这个语句,是proc编译时自动
加载的语句
/* SQLLIB Prototypes */
extern void sqlcxt (void **, unsigned long *,
struct sqlexd *, const struct sqlcxp *);
extern void sqlcx2t(void **, unsigned long *,
struct sqlexd *, const struct sqlcxp *);
extern void sqlbuft(void **, char *);
extern void sqlgs2t(void **, char *);
extern void sqlorat(void **, unsigned long *, void *);

我上网查了一下大概是缺一个文件,在unix下编译时加一个参数-lclntsh但是nt下
可能是要一个libsql8.lib的文件但我的oracle是9i的查过我的目录底下没有
找到该文件,老师能否给拷一个或者告我在哪里能找到该文件。
该怎么解决这个问题急需老师的帮助,谢谢!

以下是我的proc测试程序:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

EXEC SQL INCLUDE sqlca;;
EXEC SQL BEGIN DECLARE SECTION ;
char pwd[ 30 ] ;
char f_name[ 30 ] ;
int id ;
EXEC SQL END DECLARE SECTION ;

int main(){
EXEC SQL WHENEVER SQLERROR STOP;
memset( pwd ,0x00 ,sizeof( pwd ) ) ;
memset( f_name ,0x00 ,sizeof( f_name ) ) ;
strcpy( pwd , "test/test " ) ;
EXEC SQL CONNECT : pwd ;
printf( "Connect Success! ");
EXEC SQL select count(1) into :id
from user_table ;
printf( "num is : %d\n ", id);
EXEC SQL COMMIT WORK RELEASE ;
return 0 ;
}


[解决办法]

http://www.exam8.com/computer/Oracle/jishu/200505/12753.html

读书人网 >C语言

热点推荐