Welcome 微信登录

首页 / 数据库 / MySQL / 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 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; 
    } 
    ... 
  • 1
  • 2
  • 3
  • 下一页
【内容导航】
第1页:ESQL语法知识第2页:接口实现[非查询]
第3页:SQLDA结构
MySQL console整数time以及IP查询相关函数调用Oracle连接远程数据库配置介绍相关资讯      C语言  informix  INFORMIX数据库 
  • 最受欢迎编程语言又是谁?C语言居  (今 08:08)
  • C语言背后的运行机制  (03月06日)
  • C语言打印各种图形  (12/29/2015 22:06:28)
  • C是2016年最流行语言  (07月28日)
  • 轻松学C语言(图解版)高清晰扫描  (02月25日)
  • C语言实现文件实时更新  (11/11/2015 14:16:24)
本文评论 查看全部评论 (0)
表情: 姓名: 字数