informix 访问mysql_C语言访问INFORMIX数据库

INFORMIX数据库是IBM旗下的产品,其是一款关系数据库,目前在金融行业占有重要地位。使用C语言访问INFORMIX数据库的唯一方式是通

一、头文件

引入informix数据库的头文件时,可使用如下的方式:

EXEC SQL INCLUDE sqlca;

EXEC SQL INCLUDE sqlda;

EXEC SQL INCLUDE sqlhdr;

EXEC SQL INCLUDE decimal;

EXEC SQL INCLUDE locator;

EXEC SQL INCLUDE varchar;

EXEC SQL INCLUDE datetime;

EXEC SQL INCLUDE sqlstype;

EXEC SQL INCLUDE sqltypes;

EXEC SQL INCLUDE sqlstype;

二、宏定义

宏在宿主变量使用时,此宏定义可使用如下方式:

EXEC SQL DEFINE SQL_USRNAME_MAX_LEN 64; /* User name max len */

EXEC SQL DEFINE SQL_PASSWD_MAX_LEN 64; /* Password max len */

EXEC SQL DEFINE SQL_SVRNAME_MAX_LEN 64; /* Database name max len */

EXEC SQL DEFINE SQL_CNNAME_MAX_LEN 64; /* Connect name max len */

EXEC SQL DEFINE SQL_STMT_MAX_LEN 1024; /* SQL statement max len */

三、结构体定义

当SQL语句中使用了结构体变量时,,那么此变量的类型结构体必须通过如下方式定义:

EXEC SQL BEGIN DECLARE SECTION;

typedef struct

{

int id;

char name[32];

char gender;

int age;

char brf[256];

}DBStudent_t;

EXEC SQL END DECLARE SECTION;

如:

int db_ifx_update(...)

{

EXEC SQL BEGIN DECLARE SECTION;

DBStudent_t dbstudent;

EXEC SQL END DECLARE SECTION;

...

EXEC SQL UPDATE SET *=(:dbstudent) WHERE;

}

四、变量定义

宿主变量的必须通过如下方式进行定义:

EXEC SQL BEGIN DECLARE SECTION;

char svrname[SQL_SVRNAME_MAX_LEN], /* Server name */

usrname[SQL_USRNAME_MAX_LEN], /* User name */

passwd[SQL_PASSWD_MAX_LEN], /* Passwd */

cnname[SQL_CNNAME_MAX_LEN]; /* Connect name */

EXEC SQL END DECLARE SECTION;

如:

int db_ifx_open(...)

{

EXEC SQL BEGIN DECLARE SECTION;

char svrname[SQL_SVRNAME_MAX_LEN], /* Server name */

usrname[SQL_USRNAME_MAX_LEN], /* User name */

passwd[SQL_PASSWD_MAX_LEN], /* Passwd */

cnname[SQL_CNNAME_MAX_LEN]; /* Connect name */

EXEC SQL END DECLARE SECTION;

...

EXEC SQL CONNECT TO :svrname AS :cnname USER :usrname USING :passwd;

...

}

五、错误信息

每执行一次SQL语句后,错误码存放在全局变量sqlca.sqlcode中,可通过rgetmsg()获取错误信息。如:

int db_ifx_commit(...)

{

EXEC SQL COMMIT WORK;

if(sqlca.sqlcode < 0)

{

rgetmsg(sqlca.sqlcode, errmsg, sizeof(errmsg));

fprintf(stdout, "%s", errmsg);

return -1;

}

...

}

logo.gif

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值