📄 oradbutil.h
字号:
/***************************************
* *
* Proc*C Easy Pack *
* *
* Written by *
* WiseKing(WangQiang) *
* Unicom-BU *
* BeiJing LongShine Info(W)2003 *
* *
* Important: to use this source don't *
* remove these comments *
* *
* *
* Version 1.0Beta Freeware *
/***************************************
/******************************************************************
Email:walking98@sina.com
MODIFY TIME: 2003-12
PROGRAM NAME: OraDBUtil.pc
程序说明:这个程序是ORACLE的动态方法四的数据库存取程序的封装
程序员可以方便调用该文件所提供的execQuery(), execUpdate()方法,进行数据库操作
而不必掌握复杂的Pro*C语句
如果使用此方法则其它开发人员不需要编写.pc文件,而直接写.c文件即可
注意:目前数据库的连接为了测试使用,如果你的程序是tuxeo service可以去掉数据库连接和关闭的语句
*********************************************************************/
/*数据库结果集的结构定义*/
struct _DataSet {
long lRows; /*结果集包含的行数*/
int iCols; /*结果集每行的字段数*/
char** fields; /*数据库中对应的各个字段的名字*/
char*** content; /*结果集的各个字段值,如第一行的第二个字段,为 content[0][1] */
};
typedef struct _DataSet DataSet;
/* Maximum number of select-list items or bind variables.
定义选择表项和绑定变量最大的个数*/
#define MAX_ITEMS 40
/* Maximum lengths of the _names_ of the
select-list items or indicator variables.
定义选择表项变量名和指示器变量名的最大长度。*/
#define MAX_VNAME_LEN 30
#define MAX_INAME_LEN 30
/*执行数据库的增、删、改操作
*参数 dySql 要执行的sql语句
*返回 0 成功 -1 失败
*/
int execUpdate(char* dySql);
/*执行数据库的增、删、改操作
*参数 querySQL 要执行的查询sql语句
*参数 retDataSet 查询所得到的结果集
*参数 errMsg 出错时候的错误信息
*返回 0 成功 -1 失败
*调用方法:
* DataSet ds;
* char errMsg[1024];
* char* querySQL = "SELECT * FROM scott.emp";
* if( execQuery(querySQL, &ds, errMsg )!= 0 )
* sprintf( "SQL ERROR = %s\n", errMsg );
*/
int execQuery(char* querySQL, DataSet *retDataSet, char* errMsg);
/*对结果集进行打印显示
*参数 retDataSet 查询所得到的结果集
*返回
*/
void printDataSet(DataSet ds);
/*对查询得到的结果集进行释放处理
*参数 retDataSet 查询所得到的结果集
*返回
*/
void freeDataSet(DataSet ds );
/*根据字段的名字,得到其在DataSet中的列数
*参数 ds 结果集
*参数 lRow 要取值的行号
*参数 colName 要取值的列名称(大小写不敏感)
*返回 该列名对应第几列(从0开始),如果列未发现或其它异常,则返回-1
*/
int getColNoByName(DataSet ds, char* colName);
/*从DataSet中读取第lRow行的,字段名为colName的值
*参数 ds 结果集
*参数 lRow 要取值的行号
*参数 colName 要取值的列名称(大小写不敏感)
*返回 所取的该行记录的该列值,如果有错误,则为NULL
*注意1:! 返回值是一个指针,当DataSet被释放时,它也释放,做以你要做
*保存时,请用strcpy进行保存。
*注意2:! 建议使用ds.content[lRow][iCol]来读取单元内容,这样即简单又迅速
*/
char* elementAt(DataSet ds, long lRow, char* colName);
/*对DataSet中指定lRow行,指定列的字段进行重新赋值
*参数 ds 结果集
*参数 lRow 要取值的行号
*参数 iCol 要取值的列号
*参数 value 新的值
*返回 0设置成功 -1失败,可能是该行该列的值不存在
*注意:! 此方法不推荐使用,因为DataSet只是一个临时的内存控件,在短暂的时间
*内只作读取,不建议进行重新赋值操作,如必要,可以将其拷贝到其它实例中进行操作。
*/
int setElementAt(DataSet ds, long lRow, int iCol, char* value);
/*
test.c 文件是对上述方法调用的测试函数,源文件在/boss/ibas/temp/wk/test.c
请参看。
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -