testZ31.ec
上传用户:dgyhgb
上传日期:2007-01-07
资源大小:676k
文件大小:2k
源码类别:

SQL Server

开发平台:

Unix_Linux

  1. /*
  2.  * $Id$
  3.  *
  4.  * This file is a part of GNU SQL Server
  5.  *
  6.  * Copyright (c) 1996, Free Software Foundation, Inc
  7.  * Developed at Institute of System Programming of Russian Academy of Science
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify it under
  10.  * the terms of the GNU General Public License as published by the Free
  11.  * Software Foundation; either version 2 of the License, or (at your option)
  12.  * any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful, but WITHOUT
  15.  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  16.  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  17.  * more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License along with
  20.  * this program; if not, write to the Free Software Foundation, Inc.,
  21.  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  22.  *
  23.  * Contacts: gss@ispras.ru
  24.  */
  25. #include <stdio.h>
  26. #include <stdlib.h>
  27. #include "tests.h"
  28.    
  29. int
  30.   main(void)
  31.   char s[100];
  32.   long cnt;
  33.   int i,j=0;
  34.  EXEC SQL
  35.   DECLARE CURS1 CURSOR FOR
  36. (    SELECT  k1, t1
  37.     FROM ZTBL0
  38. --  WHERE k1 == 10
  39.  )   
  40. ;
  41.   $ WHENEVER SQLERROR GOTO errexit;
  42.   $ WHENEVER NOT FOUND GOTO exit;
  43.   $ open CURS1;
  44.   while(1)
  45.     {
  46.       $ fetch CURS1 into :i, :s;
  47.       printf("k1='%d',t1='%s'n",i,s);
  48.       if (i < 9)
  49.         EXEC SQL
  50.           UPDATE ZTBL0 
  51.   SET t1 = USER
  52.           WHERE CURRENT OF CURS1; 
  53.  
  54.       if (i > 15)
  55.         EXEC SQL
  56.           UPDATE ZTBL0 
  57.   SET k1 = k1 + 50, t1 = NULL
  58.           WHERE CURRENT OF CURS1; 
  59.  
  60.       if ((i <= 15) && (i > 8))
  61.         EXEC SQL
  62.           UPDATE ZTBL0 
  63.   SET k1 = k1 + 25
  64.           WHERE CURRENT OF CURS1;  
  65.     }
  66.  exit:
  67.   $ close CURS1;
  68.   fprintf(stderr,"End of Table ZTBL0nn");
  69.   fprintf(stderr,"After modification :n");
  70.   $ WHENEVER NOT FOUND GOTO exit1;
  71.   $ open CURS1;
  72.   while(1) 
  73.     {
  74.       $ fetch CURS1 into :i, :s;
  75.       PRINT_D (i, "k1");
  76.       PRINT_S (s, "t1");
  77.       PRINT_END;
  78.     }
  79.  exit1:
  80.   fprintf(stderr,"End of Table ZTBL0n");
  81.   $ close CURS1;
  82.   $ commit work;
  83.   return 0;
  84. errexit:
  85.   fprintf(stderr,"Error occured in test 15n");
  86.   return 0;
  87. }