ProC程序设计
1.概念
- 通过在过程化编程语言中嵌入SQL语句而开发出的应用程序称为Pro程序。
在C/C++语言中嵌入语句而开发出的应用程序称为Pro*C/C++程序。
ProcC/C++开发运行流程
2.proc介绍
安装过Oracle就有proc命令,使用该命令可将.pc文件转化成.c/cpp文件
.pc->.c makefile文件编写
参数说明:
使用proc编程步骤
-1. 头文件包含和相关说明定义
-2. 安装错误处理函数
-3. 初始化数据库
-4. 连接到数据库
-5. 执行SQL语句
-6. 断开连接
-7. 释放相关资源1.头文件包含和相关说明定义
- #include 包含所需头文件
- 在pc文件中,如果是嵌入式的SQL语句需要用到的变量,并且proc PARTIAL,那么变量必须在EXEC SQL BEGIN DECLARE SECTION;与EXEC SQL END DECLARE SECTION;之间定义:
EXEC SQL BEGIN DECLARE SECTION;
sql_context pContext;
long SQLCODE;
EXEC SQL END DECLARE SECTION;
- 2.安装错误处理函数:
//该函数由oracle库提供
extern void sqlglmt(void*, char*, size_t*,size_t* );
void sql_error()
{
char sErrorString[512];//自己定义一个数组,数组的名字可以自定义
size_t tMessageSize=0;
size_t tErrorSize=sizeof(sErrorString);
memset(sErrorString, 0, sizeof(sErrorString));
//调用sqlglmt这个函数得到具体的错误描述
sqlglmt(pContext,sErrorString,&tErrorSize,&tMessageSize);
sErrorString[tMessageSize]=0;//设置错误描述字符串最后以0结尾
printf("%s\n",sErrorString);
}
- 3.初始化数据库
void sql_init()
{
SQLCODE=0;
pContext=NULL;
//可以在代码当中生成线程相关代码
//如果proc编译的时候添加THREADS=YES,那么在pc文件当中必须先执行ENABLE THREADS语句
EXEC SQL ENABLE THREADS;
//初始化oracle的嵌入式语句
EXEC SQL CONTEXT ALLOCATE:pContext;//为pContext分配内存
EXEC SQL CONTEXT USE: pContext; //使用pContext
}
- 4.连接到数据库
int sql_connect(const char *user,const char