服务器 频道

Informix ESQL/C使用游标的一个小例子

  【IT168 服务器学院】在informix里,我们要把一个记录里得值全部都读出来,然后在屏幕上把这些记录值给打印出来得话,该如何实现呢,那我们就要使用到游标来解决问题,下面是一段使用游标得简单代码,这是一个ec程序:

  #include <stdio.h>

  #include <sqlca.h>

  #include <sqlda.h>

  #include <sqltypes.h>

  #include <sqlstype.h>

  main()

  {

      EXEC SQL INCLUDE SQLCA; /*定义通信区*/

   

      EXEC SQL BEGIN DECLARE SECTION; /*主变量定义开始*/

      char *string1;

      char str1[10];

      char str2[10];

      EXEC SQL END DECLARE SECTION; /*主变量定义结束*/ 

      

      /*EXEC SQL DROP DATABASE example;*//*可用可不用*/

      EXEC SQL CREATE DATABASE example;

      EXEC SQL connect DATABASE example; /*连接数据库*/

      if (SQLCODE == SUCCESS)

      {

          EXEC SQL CREATE TABLE Student

          ( alarm char(6) ,

            sname char(10)

          ); 

      }

     

      //插入数据

      EXEC SQL INSERT INTO Student VALUES("aaaa","bbbb"); 

      EXEC SQL INSERT INTO Student VALUES("dddd","dddd"); 

      EXEC SQL INSERT INTO Student VALUES("cccc","cccc"); 

     

      //设置游标其中DECLARE是将查询得结果赋予fet_cur

   EXEC SQL DECLARE fet_cur CURSOR FOR

      SELECT alarm, sname FROM Student;

   EXEC SQL OPEN fet_cur;

   

   printf("SQLCODE=%d\n", SQLCODE);

   for(;;)

   {

    memset(str1, 0, sizeof(str1));

    memset(str2, 0, sizeof(str2));

    

          /*把记录游标fet_cir移到一个新位置,凭且把记录值赋予变量str1和str2*/

          EXEC SQL FETCH fet_cur INTO :str1,:str2;

       if (SQLCODE != SUCCESS)

    {

        printf("LINE=%d, SQLCODE=%d", __LINE__, SQLCODE);

     break;

    }

    //打印记录结果

       printf("str1=%s, str2=%s\n",str1,str2); 

   }

   

   //关闭游标和数据库

   EXEC SQL CLOSE fet_cur;

   EXEC SQL CLOSE DATABASE;

      /*

          EXEC SQL SELECT first 1 alarm,sname

            INTO :str1,:str2 FROM Student;

          if (SQLCODE !=0)

       {

          printf("LINE=%d, SQLCODE=%d", __LINE__, SQLCODE);

          return(-1);

          }

          printf("str1=%s, str2=%s\n",str1,str2); 

      */

      return(0);

  }

  其结果是在屏幕上打印出从informix里读出得数据:

  str1=aaaa     , str2=bbbb

  str1=dddd     , str2=dddd

  str1=cccc     , str2=cccc

  记住,打开游标、数据库一定记住关闭,养成良好的编程习惯!

  

0
相关文章