当前位置:文档之家› ORACLE数据库API接口函数设计说明

ORACLE数据库API接口函数设计说明

ORACLE数据库API接口函数设计说明
API接口函数使用示例:
参见程序OCIDEMO.DSW
//工程中不用在连接ociw32.lib只用xjoci.lib就行了。

假定:
工程文件为newocidemo,所在目录为c:\newocidemo,newocidemo.exe 位于c:\newocidemo\debug下面
使用步骤:
1、将MyConnection.h;oratypes.h;ocidem.h;ocidfn.h;xioci.lib复制到c:\newocidemo下面
2、将xioci.dll复制到c:\newocidemo\debug下面
3、设置project 下的settings 下面的link 中的object/library modules: 为xjoci.lib
4、在file中添加MyConnection.h,从而在class中会出现connection,cursor两个新类
API接口函数类设计:
CONNECTION类
class connection
{
friend class cursor;
public:
BOOL IsConnected();
connection();
~connection();
BOOL connect(char *username, char *password,char *sername);
BOOL disconnect();
void display_error() const;
private:
Lda_Def lda;
ub1 hda[HDA_SIZE];
enum conn_state
{
not_connected,
connected
};
conn_state state;
};
BOOL connect(char *username, char *password,char *sername); 函数用途:connect函数建立OCI程序与ORACLE数据库的连接参数说明:char *username,--用户名
char *password,--口令
char *sername—主机字符串(数据库别名)。

返回值:连接成功返回TRUE,不成功返回FALSE
BOOL disconnect();
函数用途:disconnect函数断开与数据库的连接
参数说明:
返回值:断开成功返回TRUE,不成功返回FALSE
BOOL IsConnected ();
函数用途:IsConnected函数判断是否与数据库建立了连接。

参数说明:
返回值:有连接存在返回值为TRUE,没有连接返回值为FALSE void display_error() const;
函数用途:display_error当各个函数返回值为FALSE时,调用此函数可以显示错误信息。

返回值:
CURSOR类
class cursor
{
public:
BOOL IsOpened();
BOOL ExecuteSQL(char * stmt);
cursor();
~cursor();
BOOL open(connection *conn_param);
BOOL close();
BOOL parse(const char *stmt);
/* 绑定输入*/
BOOL bind_by_position(int sqlvnum, void *progvar,int progvarlen,
int datatype,short *indicator);
/* 定义输出*/
BOOL define_by_position(int position, void *buf,int bufl, int datatype);
//取得列描述信息
BOOL describe(int position, long *dbsize, int *dbtype,
void *cbuf, int *cbufl, long *dsize, int *prec,
int *scale, int *nullok);
BOOL execute();
BOOL fetch();
void display_error();
private:
int get_error_code();
Cda_Def cda;
connection *conn;
enum cursor_state
{
not_opened,
opened
};
cursor_state state;
};
BOOL IsOpened();
函数用途:判断游标是否打开
参数说明:
返回值:游标打开返回值为TRUE,游标没有打开返回值为FALSE BOOL ExecuteSQL(char * stmt);
函数用途:直接执行不带绑定输入和定义输出的SQL语句,如插入、更新、提交、回滚等。

实际上完成解析(PARSE)和执行(EXECUTE)的功能。

参数说明:char * stmt构造的SQL语句
返回值:成功执行返回值为TRUE,执行不成功返回值为FALSE BOOL open(connection *conn_param);
函数用途:打开游标
参数说明:connection *conn_param connection对象的地址
返回值:打开成功返回值为TRUE,打开不成功返回值为FALSE BOOL close();
函数用途:关闭游标
参数说明:
返回值:成功关闭游标返回值为TRUE,关闭游标不成功返回值为FALSE
BOOL parse(const char *stmt);
函数用途:解析所构造的SQL语句
参数说明:const char *stmt 所构造的SQL语句
返回值:解析成功返回值为TRUE,解析不成功返回值为FALSE
BOOL bind_by_position(int sqlvnum, void *progvar,int progvarlen, int datatype,short *indicator);
函数用途:该函数用于绑定输入,即宿主变量作为SQL语句的参数,建议直接将宿主变量的值格式化进SQL语句(SQL PLUS 可以直接执行的字符串),以避免使用此函数。

参数说明:
返回值:
BOOL define_by_position(int position, void *buf,int bufl, int datatype);
函数用途:该函数用于定义输出即定义SQL语句返回的记录所保存到的宿主变量的内存地址。

参数说明:int position,--以1为开始的待定义的SQL语句记录项的索引值。

void *buf,--宿主变量的内存地址
int bufl,--宿主变量的长度
int datatype—宿主变量的数据类型(参照OCIDEM。

H中的数据类型预定义)
返回值:成功返回值为TRUE,不成功返回值为FALSE
BOOL describe(int position, long *dbsize, int *dbtype,
void *cbuf, int *cbufl, long *dsize, int *prec,
int *scale, int *nullok);
函数用途:该函数用于返回表结构信息
参数说明:
返回值:
BOOL execute();
函数用途:execute执行经过解析(、定义输出)的SQL语句。

参数说明:
返回值:执行成功返回值为TRUE,执行不成功返回值为FALSE
BOOL fetch();
函数用途:fetch 函数取一条SELECT语句返回的记录。

再次执行此函数时,取出下一条记录。

参数说明:
返回值:执行成功返回值为TRUE,当取记录失败或没有记录可取时,返回FALSE。

void display_error();
函数用途:display_error当各个函数返回值为FALSE时,调用此函数可以显示错误信息。

*FETCH函数除外。

参数说明:
返回值:。

相关主题