esql和informix数据库

来源:互联网 发布:蛋疼到底有多疼 知乎 编辑:程序博客网 时间:2024/06/10 03:52

#include <stdio.h>

/*定义两个常量*/

EXEC SQL define FNAME_LEN 15;

EXEC SQL define LNAME_LEN 15;

main()

{

/*声明宿主变量*/

EXEC SQL BEGIN DECLARE SECTION;

char fname[ FNAME_LEN + 1 ];

char lname[ LNAME_LEN + 1 ];

EXEC SQL END DECLARE SECTION;

printf( "DEMO1 Sample ESQL Program running.\n\n");

/*出错处理,如果返回错误信息,则停止该程序*/

EXEC SQL WHENEVER ERROR STOP;

/*连接到db_ics_hlj数据库*/

EXEC SQL connect to 'db_ics_hlj';

/*声明一个游标*/

EXEC SQL DECLARE democursor cursor for

select fname, lname

into :fname, :lname

from nameTest;

/*打开游标*/

EXEC SQL open democursor;

/*如果SQLSTATE不等于“00”,那么表示到达了数据集的尾部(02),或者产生了错误(大于02*/

for (;;)

{

EXEC SQL fetch democursor;

if (strncmp(SQLSTATE, "00", 2) != 0)

break;

printf("%s %s\n",fname, lname);

}

/*打印错误信息*/

if (strncmp(SQLSTATE, "02", 2) != 0)

printf("SQLSTATE after fetch is %s\n", SQLSTATE);

/*关闭游标*/

EXEC SQL close democursor;

/*释放游标占用的资源*/

EXEC SQL free democursor;

/*断开数据库服务器的连接*/

EXEC SQL disconnect current;

printf("\nDEMO1 Sample Program over.\n\n");

}

**.ec文件生成可执行文件的方法:

 方法一:手动编写

esql   -c   **.ec       //这时自动生成两个中间文件:**.c**.o

esql   -o   **   **.o  //生成可执行文件**

最后在shell下执行**可执行文件

方法二:编写makefile文件

#定义make可识别的文件扩展名

.SUFFIXES:.ec .c .o 

#下两个是宏定义,(1)用ECC代表esql,2)指定include搜索路径

ECC      = esql
INCL_DIR = $(HOME)/include  -I$(INFORMIXDIR)/incl/esql

#告诉make编译时生成的可执行文件是:exe_file
all:exe_file 
OBJS=src_file.o     #定义目标文件

exe_file:$(OBJS)          #告诉make exe_file由目标文件OBJS生成
      $(ECC) -o $@ $(OBJS)     #$@=exe_file,此句等价于:esql -o exe_file  src_file.o
#以上是执行文件exe_file的编译方法。

.ec.o:
  $(ECC) -c -I$(INCL_DIR) $<       #此句等价于:esql -c
 @rm $*.c    #删除中间文件src_file.c $(HOME)/include  -I$(INFORMIXDIR)/incl/esql
src_file.ec
#以上为.ec文件变成.o文件的方法,make会自动根据目标文件查找相应的源代码文件。

原创粉丝点击