我写了极简单的程序,可是编译不过,请帮帮忙。谢谢!
希望有人回帖!
复制内容到剪贴板
代码:
#include <STDIO.H>
#include <SQLCA.H>
#include <STRING.H>
#include <STDLIB.H>
#include <TIME.H>
#include
</P>#include<UNISTD.H>
EXEC SQL INCLUDE SQLCA;
EXEC SQL INCLUDE ORACA;
EXEC ORACLE OPTION (ORACA=YES);
void sqlerr();
main()
{
char strusername[20];
char strpassword[20];
char stralias[20];
char v_ename[20];
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR varusername[30];
int v_empno;
EXEC SQL END DECLARE SECTION;
strcpy(strusername,"scott");
strcpy(strpassword,"tiger");
strcpy(stralias,"test");
sprintf((char *)varusername.arr,"%s/%s@%s",strusername,strpassword,stralias);
varusername.len=strlen(varusername.arr);
v_empno=7777;
EXEC SQL WHENEVER SQLERROR do sqlerr();
EXEC SQL CONNECT :varusername;
/*EXEC SQL INSERT INTO EMP(EMPNO,ENAME)
VALUES(:v_empno, :varusername);
EXEC SQL COMMIT WORK RELEASE;*/
}
void sqlerr()
{
EXEC SQL WHENEVER SQLERROR STOP;
printf("nconnect oracle server falsen");
EXEC SQL ROLLBACK WORK RELEASE;
}提示错误如下:
复制内容到剪贴板
代码:
gcc -g -D_DEBUG -c o_test2.c
o_test2.c:210: redefinition of `struct sqlca'
make: *** [o_test2.o] Error 1makefile 文件
复制内容到剪贴板
代码:
include $(ORACLE_HOME)/precomp/lib/env_precomp.mk
OBJS=o_test2.o
EXE=tt1
CC=gcc
MYCFLAGS=-g -D_DEBUG
FLAGPROC=userid=scott/tiger@test sqlcheck=full
PROCFLAGS=sys_include=(/usr/include,/usr/lib/gcc-lib/i486-suse-linux/2.95.3/include,/usr/lib/gcc-lib/i386-redhat-linux/2.96/include,/usr/lib/i386-redhat-linux7/include,/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/include)
THREADS=YES
RARSE=NONE
LIBS=-lpthread -lnsl
all:$(OBJS)
$(CC) -o $(SQLCHECK) $(EXE) $(OBJS) $(LIBS) $(LDPATHFLAG) $(LIBHOME) $(PROLDLIBS)
clean:
rm *.o
.SUFFIXES: .pc .c .o
.pc.c:
$(PROC) $(FLAGPROC) $(PROCFLAGS) iname=$ o_test2.pc
.pc.o:
$(PROC) $(PROCFLAGS) iname=$ o_test2.pc
$(CC) $(MYCFLAGS) -c $ o_test2.c
.c.o:
$(CC) $(MYCFLAGS) -c $ o_test2.c请指出我的错误!!