1 简要概述
INFORMIX数据库是IBM旗下的一款关系数据库,目前在金融行业占有不可替代的地位。使用C语言访问INFORMIX数据库的唯一方式是通过ESQL,其过程中有很多细节内容需要注意,但为了能够快速的理解各接口的流程,在此只给出各接口的基本框架。(注:ESQL语法在IBM帮助系统http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?中有详尽的描述)
2 结构定义
/* 数据源配置信息 */
typedef struct
{
char svrname[DB_SVR_NAME_MAX_LEN]; /* 服务名 */
char usrname[DB_USR_NAME_MAX_LEN]; /* 用户名 */
char passwd[DB_PWD_MAX_LEN]; /* 密码 */
}db_source_struct_t;
/* 数据库连接上下文信息 */
typedef struct
{
char svrname[DB_SVR_NAME_MAX_LEN]; /* 服务名 */
char cnname[DB_CONN_NAME_MAX_LEN]; /* 连接名 */
/* 查询结果集 */
ifx_sqlda_t *result; /* FETCH结果集 */
int req_rows; /* 每次申请取的行数 */
int rows; /* 结果集中实际的行数 */
int isalloced; /* 结果集空间是否被分配 0:未分配 1:已分配 */
/* 结果转换 */
char *convert; /* 结果转换空间 */
size_t convert_size; /* 结果转换空间的大小 */
int msglen; /* 存放查询数据的所有列的长度和 */
size_t row_size; /* 存放了在C程序中的所有列(一行)的长度和 */
}db_ifx_cntx_t;