Oracle For HP_UX上,如何编译运行Proc(急,多分)

zhaojx9 2003-10-19 10:55:13
在HP_UX上装了Oracle9i,要编译运行Proc的程序,
请教Makefile文件如何写,最好有个成功抽库更新的例子.
万分感谢!!
...全文
34 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlecong 2003-10-30
  • 打赏
  • 举报
回复
这是我目前用的,只生成.o文件
FLG = -g
RM = @rm -f
CC = @cc
D = $(PREDEFINE)
PROC = @$(ORACLE_HOME)/bin/proc
CFLAG = $(FLG)
MODE=mode=ansi
CODE=
PARSE=full
NLS_CHAR=nls_char=ZHS16GBK
APP_INC = include=. include=../../public
DB_INC = include=$(ORACLE_HOME)/precomp/public include=$(ORACLE_HOME)/rdbms/demo include=$(ORACLE_HOME)/rdbms/public

ORA_LIBDIR = -L$(ORACLE_HOME)/lib32/
ORA_LIBFLAG = `cat $(ORACLE_HOME)/lib32/sysliblist` -lclntsh

C_INCP = -I$(ORACLE_HOME)/precomp/public -I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/rdbms/public -I.
C_LIBP = $(ORA_LIBDIR) $(ORA_LIBFLAG) -L.

CFLAGS = $(CFLAG) $(C_INCP) $(C_LIBP)

# libraries and targets
OBJS = \
ora_ecpublic.o \
ora_funsend.o \
ora_makxml.o
TARGET = $(OBJS)

all: $(TARGET)

# implicit

.SUFFIXES:
.SUFFIXES: .pc .c .o

.pc.o:
@echo 'compiling $*.pc';
$(PROC) $(MODE) $(NLS_CHAR) $(APP_INC) $(DB_INC) $(CODE) iname=$*.pc;
$(CC) $(CFLAGS) $(C_INCP) $(D) -c $*.c;
$(RM) $*.c;
$(RM) $*.lis

.c.o:
$(CC) -g -o $(APP_INC) $(DB_INC) $@ -c $< $(CFLAGS)

clean:
$(RM) $(OBJS)
zjtxsx 2003-10-29
  • 打赏
  • 举报
回复
其实写makefile没那么复杂可怕,一般就分两步,先用proc编译,再用cc编译即可。
zhaojx9 2003-10-20
  • 打赏
  • 举报
回复

一个连接数据库的例子
/*procdemo.pc*/
#include <sqlca.h>
#include <string.h>
#include <stdio.h>
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username[20];
VARCHAR password[20];
VARCHAR dbname[20];
EXEC SQL END DECLARE SECTION;
void db_connect(char *user,char *pass,char *server)
{
strcpy((char *)username.arr,user);
username.len = strlen((char *)username.arr);
strcpy((char *)password.arr,pass);
password.len = strlen((char *)password.arr);
strcpy((char *)dbname.arr,server);
dbname.len = strlen((char *)dbname.arr);
EXEC SQL WHENEVER SQLERROR STOP;
EXEC SQL CONNECT :username
IDENTIFIED BY :password USING :dbname;
if (sqlca.sqlcode != 0)
{
printf("\nConnect Oracle Failed!i\n");
return;
}
else
printf("Connect oracle successfully\n");
}


/*demo.c*/
#include <sqlca.h>
#include <stdio.h>
extern void db_connect();
main()
{
db_connect("cash","cash","m1");
}

/*makefile*/
OBJECT =procdemo.c demo.c
ORACLEDIR=$(ORACLE_HOME)
all: clean ppcc demo
ppcc:
proc procdemo.pc
demo:
cc -o demo $(OBJECT) -I$(ORACLE_HOME)/precomp/public \
-L$(ORACLEDIR)/lib -lclntsh
clean:
rm -f procdemo.c demo

运行 ./demo

zaiquansun 2003-10-19
  • 打赏
  • 举报
回复
yiyi999999999 2003-10-19
  • 打赏
  • 举报
回复
oracle提供一个实例proc.mak,你可以参照一下。

23,114

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧