> 데이터 베이스 > MySQL 튜토리얼 > C语言访问INFORMIX数据库

C语言访问INFORMIX数据库

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-07 17:22:50
원래의
1574명이 탐색했습니다.

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     { 
        rgetmsg(sqlca.sqlcode, errmsg, sizeof(errmsg)); 
        fprintf(stdout, "%s", errmsg); 
        return -1; 
    } 
    ... 

linux

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿