linux下面的数据库程序
2008-03-12 17:39
357 查看
=================
linux 环境下的数据库编程
=================
折腾了半天终于可以编译了,以此纪念一下!以后备查
1. DB2
makefile 文件:
DB2PATH = /home2/db2inst1/sqllib
CC = cc
CM = xlC_r7
HEADS = -I$(DB2PATH)/include
# The required libraries
LIBS = -L$(DB2PATH)/lib -ldb2
LIBSUDF = -L$(DB2PATH)/lib -ldb2 -ldb2apie
DEST = ../bin/
DB = db2front
# Set UID and PWD if neccesary
UID=icsadm
PWD=icsadm
all: 005 clean
005: 005.sqC
db2 connect to $(DB) user $(UID) using $(PWD)
db2 prep 005.sqC
$(CC) -o $(DEST)005 005.C $(LIBS) $(HEADS)
clean:
rm *.C
源代码文件:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sqlca.h>
#include <sql.h>
EXEC SQL INCLUDE SQLCA;
#define CHECKERR(CE_STR) if(check_error(CE_STR,&sqlca) != 0) return 1;
int check_error(char eString[], struct sqlca *caPointer)
{
char eBuffer[1024];
char sBuffer[1024];
short rc, Erc;
if(caPointer->sqlcode != 0)
{
printf("---- error report -----/n");
printf("Error occured : %s. /nSQLCODE : %ld/n",eString, caPointer->sqlcode);
rc = sqlogstt(sBuffer,1024,80,caPointer->sqlstate);
Erc = sqlaintp(eBuffer,1024,80,caPointer);
if(Erc > 0) printf("%s",eBuffer);
if(caPointer->sqlcode < 0)
{
if(rc == 0)
{
printf("/n%s",sBuffer);
}
printf("--- end report --/n");
return 1;
}
else
{
if(rc == 0)
{
printf("/n%s",sBuffer);
}
printf("--- end report -- /n");
printf("WARNING: CONTINUING PROGRAM WITH WARNINGS!/n");
return 0;
}
}
return 0;
}
int main()
{
EXEC SQL BEGIN DECLARE SECTION;
char var1[20];
EXEC SQL END DECLARE SECTION;
/*var1 = (char *)malloc(10);*/
EXEC SQL CONNECT TO db2front user icsadm using icsadm;
EXEC SQL DECLARE cl CURSOR FOR
SELECT ID FROM mngusrinf;
EXEC SQL OPEN cl;
do{
EXEC SQL FETCH cl INTO :var1;
if(SQLCODE !=0 ) break;
printf("ID : %s /n",var1);
}while(1);
EXEC SQL CLOSE cl;
CHECKERR("close CURSOR statement");
EXEC SQL CONNECT RESET;
return 0;
}
linux 环境下的数据库编程
=================
折腾了半天终于可以编译了,以此纪念一下!以后备查
1. DB2
makefile 文件:
DB2PATH = /home2/db2inst1/sqllib
CC = cc
CM = xlC_r7
HEADS = -I$(DB2PATH)/include
# The required libraries
LIBS = -L$(DB2PATH)/lib -ldb2
LIBSUDF = -L$(DB2PATH)/lib -ldb2 -ldb2apie
DEST = ../bin/
DB = db2front
# Set UID and PWD if neccesary
UID=icsadm
PWD=icsadm
all: 005 clean
005: 005.sqC
db2 connect to $(DB) user $(UID) using $(PWD)
db2 prep 005.sqC
$(CC) -o $(DEST)005 005.C $(LIBS) $(HEADS)
clean:
rm *.C
源代码文件:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sqlca.h>
#include <sql.h>
EXEC SQL INCLUDE SQLCA;
#define CHECKERR(CE_STR) if(check_error(CE_STR,&sqlca) != 0) return 1;
int check_error(char eString[], struct sqlca *caPointer)
{
char eBuffer[1024];
char sBuffer[1024];
short rc, Erc;
if(caPointer->sqlcode != 0)
{
printf("---- error report -----/n");
printf("Error occured : %s. /nSQLCODE : %ld/n",eString, caPointer->sqlcode);
rc = sqlogstt(sBuffer,1024,80,caPointer->sqlstate);
Erc = sqlaintp(eBuffer,1024,80,caPointer);
if(Erc > 0) printf("%s",eBuffer);
if(caPointer->sqlcode < 0)
{
if(rc == 0)
{
printf("/n%s",sBuffer);
}
printf("--- end report --/n");
return 1;
}
else
{
if(rc == 0)
{
printf("/n%s",sBuffer);
}
printf("--- end report -- /n");
printf("WARNING: CONTINUING PROGRAM WITH WARNINGS!/n");
return 0;
}
}
return 0;
}
int main()
{
EXEC SQL BEGIN DECLARE SECTION;
char var1[20];
EXEC SQL END DECLARE SECTION;
/*var1 = (char *)malloc(10);*/
EXEC SQL CONNECT TO db2front user icsadm using icsadm;
EXEC SQL DECLARE cl CURSOR FOR
SELECT ID FROM mngusrinf;
EXEC SQL OPEN cl;
do{
EXEC SQL FETCH cl INTO :var1;
if(SQLCODE !=0 ) break;
printf("ID : %s /n",var1);
}while(1);
EXEC SQL CLOSE cl;
CHECKERR("close CURSOR statement");
EXEC SQL CONNECT RESET;
return 0;
}
相关文章推荐
- Windows linux 下面查看端口被哪个程序占用
- [DEV] 在linux 64 系统下面进行32位程序开发
- 从Windows下Java程序如何操作Linux下Hbase数据库表过程、难点的心得历程
- Windows下的程序放到linux下面不能执行的问题
- [ARM] [linux master] 调试技术002 在linux下面使用mtrace来检查一般程序的内存溢出
- python 写的一个Ice服务端在linux下面的守护进程程序
- windows和linux下面通用的线程程序
- 嵌入式数据库程序(Linux)
- 在Linux下面使用Mysql的客户端工具WorkBench创建数据库和用户并连接
- python 写的一个Ice服务端在linux下面的守护进程程序
- linux 如何解决音频传输延迟,请高手指教,下面是我的客户端程序
- linux下面根据不同的日期创建不同文件,一般用户数据库的备份的shell编程
- 程序开发工具(Java反编译及Linux等)与调试技巧(eclipse,linux)部分数据库插件
- 如何在linux下面开始阅读开源程序(eclipse)
- 程序中应用数据库(Linux)
- linux c++编写访问mysql程序,访问数据库出错,解决方法
- 在linux下面使用mtrace来检查一般程序的内存溢出
- ini配置文件在LINUX下面程序打不开?
- Linux 下面使用 mtrace 来检查一般的程序的内存溢出
- linux 下面程序自动安装脚本