⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 informix.h

📁 站长以前写的informix通用开发包源码
💻 H
字号:
#ifndef _INFORMIX_H
#define _INFORMIX_H

#ifndef EC
#include <infxcli.h>
#endif

#define MAX_COL_COUNT		40
#define MAX_COL_NAME_SIZE	30

#define DB_ERR_DUP	-239 /* 268 */
#define DB_ERR_LOCK	-271

#define SQLT_STR	1
#define SQLT_INT	2
#define SQLT_FLT	3
#define SQLT_DATETIME	4

#define SQL_OPT_GET_ROWID	1
#define SQL_OPT_GET_SERIAL	2

#define DB_ROWID_SIZE		18
#define DB_DATETIME_SIZE	19

#define BIND_TYPE_INSERT	1
#define BIND_TYPE_UPDATE	2
#define BIND_TYPE_SQLSTM	3

typedef struct
{
  char name[MAX_COL_NAME_SIZE+1];
  int size;
  int type;
  int f_output;
}DB_COL_DEF;

typedef struct
{
  char sqlstm[256];
#ifdef EC
  int stmt_num, cursor_num, desc_num;
#else
  HSTMT hstmt;
#endif
  short col_count;
  int row_count;
  DB_COL_DEF col_defs[MAX_COL_COUNT];
  char **pbufs;  /* one row */
  long is_null[MAX_COL_COUNT];
  int param_count;
  DB_COL_DEF param_defs[MAX_COL_COUNT];
  char *pbufs_param[MAX_COL_COUNT];
  int buf_count;
  char *bufs[MAX_COL_COUNT];
}DB_SEL_DATA;

typedef struct
{
  char *pvalue;
  char is_null;
}DB_COL_DATA;

typedef struct
{
  DB_COL_DATA *cols;
  int rc;
}DB_ROW_DATA;

typedef struct
{
  int type;       /* BIND_TYPE_INSERT, BIND_TYPE_UPDATE */
#ifndef EC
  HSTMT hstmt;
#endif
  char table_name[256];
  int row_count;
  short col_count;
  DB_COL_DEF col_defs[MAX_COL_COUNT];
  DB_ROW_DATA *rows;
}DB_BIND_DATA;

typedef struct
{
#ifndef EC
  HSTMT hstmt;
#endif
  char name[40];
  int param_count;
  DB_COL_DEF col_defs[MAX_COL_COUNT];
  char *params[MAX_COL_COUNT];
  int ret;
}DB_RPC_DATA;

int db_login(char *dbname, char *user, char *pass);
void db_logout();

void db_begin_trans();
void db_commit();
void db_rollback();

int db_exec_sql(char *stm);
int db_exec_sql_opt(char *stm, int opt);

int db_sel_run(DB_SEL_DATA *);
int db_sel_fetch(DB_SEL_DATA *);
void db_sel_free(DB_SEL_DATA *);

int db_sel_init(DB_SEL_DATA *);
int db_sel_exec(DB_SEL_DATA *);

int db_select(DB_SEL_DATA *);

int db_bind_alloc(DB_BIND_DATA *pbind_data);
int db_bind_exec(DB_BIND_DATA *pbind_data, int count, int f_err_continue);
void db_bind_free(DB_BIND_DATA *pbind_data);

int db_rpc(DB_RPC_DATA *);

#ifdef EC
void db_err(char *pre);
#else
void db_err(HSTMT hstmt, char *pre);
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -