C语言访问INFORMIX数据库 — ESQL语法知识
来源:互联网 发布:非凡软件怎么用 编辑:程序博客网 时间:2024/06/05 11:04
一、头文件
引入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 id='10001';}
四、变量定义
宿主变量的必须通过如下方式进行定义:
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; } ...}
- C语言访问INFORMIX数据库 — ESQL语法知识
- ESQL/C连接和断开数据库(INFORMIX)
- esql和informix数据库
- INFORMIX-ESQL/C编程
- INFORMIX-ESQL/C
- C语言访问INFORMIX数据库 — 接口实现
- C语言访问INFORMIX数据库 — SQLDA结构
- C语言访问INFORMIX数据库 — SQLDA使用
- INFORMIX ESQL/C编程手册
- 用C++访问INFORMIX数据库
- ESQL/C
- 嵌入SQL/C语言---(informix)
- c语言访问MySQL数据库
- C语言访问MySQL数据库
- IBM 的数据库Informix 常用代语法
- esql 常用语法
- esql常用语法示例
- informix esql使用POSIX多线程技术
- Cloud Foundry心得及资料
- 程序员面试题精选100题(14)-圆圈中最后剩下的数字
- BST(或者普通树)的中序遍历非递归版本
- 阿里参股新浪微博能如何
- 聚集索引:物理存储按照索引排序
- C语言访问INFORMIX数据库 — ESQL语法知识
- switch_to宏为什么要三个参数
- ubuntu 12.04下txt乱码
- 2012年"新秀杯"程序设计比赛——现场热身赛参考题解
- Js jquery 一些公用方法
- LLVM 3.0 编译器好的特性
- Android NDK 是什么
- 润乾直连方式连接数据源
- 用SM50结束进程