一个连接数据库的例子
/*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
/*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
/usr/ccs/bin/ld: /opt/oracle/lib/libclntsh.sl: Mismatched ABI. 64-bit PA shared library found in 32-bit link.
不懂,再次请教,先多谢了.
-L$(ORACLEDIR)/lib 改成-L$(ORACLEDIR)/lib32即可