本示例程序基于对oci库方法的简单的封装,若要实验本程序,要求有linux下的oci库libclntsh.a或libclntsh.so。
下面是对其简单的封装:
#include <stdio.h>
#include "oratypes.h"
#include "ocidfn.h"
#ifdef __STDC__
#include "ociapr.h"
#else
#include "ocikpr.h"
#endif
#include "ocidem.h"
#define OCI_EXIT_FAILURE 1
#define OCI_EXIT_SUCCESS 0
#define DEFER_PARSE 1
#define NATIVE 1
#define VERSION_7 2
void logon(Lda_Def *lda,ub1 *hda,text *user,text* passwd);
void logon1(Lda_Def *lda,ub1 *hda,text *user,text* passwd);
void logoff (Lda_Def *lda,Cda_Def *cda_cur);
void openCurs(Cda_Def *cda_cur,Lda_Def *lda_cur);
void parseSql(Cda_Def *cda_cur,text *sqlStmt,Lda_Def *lda);
void defineIntOut(Cda_Def *cda,Lda_Def *lda,int *out,sword index);
void defineTextOut(Cda_Def *cda,Lda_Def *lda,text *out,sword index,sword size);
void err_report(Cda_Def *cursor,Lda_Def *lda);
void do_exit(eword status);
void close_cursor(Cda_Def *cda_cur);
void execute_sql(Cda_Def *cda_cur,Lda_Def *lda);
void bind_sql(Cda_Def *cda,text *txt,ub1 *ub,int size,int SQL_TYPE,Lda_Def *lda);
///////////////////////////////
ocihelper.h实现部分ocihelper.cpp
//////////////////////////////
#include <stdio.h>
#include <stdlib.h>
#include "ocihelper.h"
void logon(Lda_Def *lda,ub1 *hda,text *user,text* passwd)
{