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

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. int
  29. main(void)
  30. {
  31.   int i = 5;
  32.   char str[] = "SZ" /* "TABD" "UNTABID" */;
  33.   char COLNAME[20], COLTYPE[2], DEFVAL[500],
  34.     DEFNULL[2], MAXVAL[500], MINVAL[500];
  35.   int  UNTABID, COLTYPE1, COLTYPE2, VALNO;
  36.   short COLNO;
  37.   int  DEFVAL_ind, VALNO_ind, MAXVAL_ind, MINVAL_ind;
  38.   
  39.   EXEC SQL
  40.     DECLARE CURS1 CURSOR FOR
  41.     (SELECT COLNAME, UNTABID, COLNO, COLTYPE, COLTYPE1,
  42.      COLTYPE2, DEFVAL, DEFNULL, VALNO, MINVAL, MAXVAL
  43.      FROM DEFINITION_SCHEMA.SYSCOLUMNS
  44. --   WHERE
  45. --     UNTABID = 2    and
  46. --     UNTABID > 10   and
  47. --     COLNAME = 'k1' and
  48. --     COLNAME >= :str AND
  49. --       UNTABID < :i
  50. --     OR
  51. --       UNTABID > 100
  52.     )
  53.     ;
  54.   
  55.   $ WHENEVER SQLERROR GOTO errexit;
  56.   $ WHENEVER NOT FOUND GOTO exit;
  57.   $ open CURS1;
  58.   printf("|--------------------------------|n");
  59.   while(1)
  60.     {
  61.       $ fetch CURS1 into :COLNAME, :UNTABID, :COLNO, :COLTYPE, :COLTYPE1,
  62. :COLTYPE2, :DEFVAL :DEFVAL_ind, :DEFNULL,
  63. :VALNO :VALNO_ind, :MINVAL :MINVAL_ind, :MAXVAL :MAXVAL_ind;
  64.       
  65.       printf("| %3d | %18s | %3d |n",UNTABID,COLNAME,COLNO);
  66.     }
  67. exit:
  68.   printf("|--------------------------------|n");
  69.   fprintf(stderr,"End of Table SYSCOLUMNSn");
  70.   $ close CURS1;
  71.   
  72.   EXEC SQL
  73.     DECLARE CURS2 CURSOR FOR
  74.     (SELECT COLNAME, UNTABID, COLNO, COLTYPE, COLTYPE1,
  75.      COLTYPE2, DEFVAL, DEFNULL, VALNO, MINVAL, MAXVAL
  76.      FROM DEFINITION_SCHEMA.SYSCOLUMNS
  77.      WHERE
  78. --     UNTABID = 2    and
  79.        UNTABID > 10  
  80. --     COLNAME = 'k1' and
  81. --     COLNAME >= :str AND
  82. --       UNTABID < :i
  83. --     OR
  84. --       UNTABID > 100
  85.     )
  86.     ;
  87.   
  88.   $ WHENEVER NOT FOUND GOTO exit2;
  89.   $ open CURS2;
  90.   printf("|--------------------------------|n");
  91.   while(1)
  92.     {
  93.       $ fetch CURS2 into :COLNAME, :UNTABID, :COLNO, :COLTYPE, :COLTYPE1,
  94. :COLTYPE2, :DEFVAL :DEFVAL_ind, :DEFNULL,
  95. :VALNO :VALNO_ind, :MINVAL :MINVAL_ind, :MAXVAL :MAXVAL_ind;
  96.       
  97.       printf("| %3d | %18s | %3d |n",UNTABID,COLNAME,COLNO);
  98.     }
  99. exit2:
  100.   printf("|--------------------------------|n");
  101.   fprintf(stderr,"End of Table SYSCOLUMNSn");
  102.   $ close CURS2;
  103.   
  104.   EXEC SQL
  105.     DECLARE CURS3 CURSOR FOR
  106.     (SELECT COLNAME, UNTABID, COLNO
  107.      FROM DEFINITION_SCHEMA.SYSCOLUMNS
  108.      WHERE
  109.        UNTABID <= 4
  110.     )
  111.     ;
  112.   
  113.   $ WHENEVER NOT FOUND GOTO exit3;
  114.   $ open CURS3;
  115.   printf("|--------------------------------|n");
  116.   while(1)
  117.     {
  118.       $ fetch CURS3 into :COLNAME, :UNTABID, :COLNO;
  119.       
  120.       printf("| %3d | %18s | %3d |n",UNTABID,COLNAME,COLNO);
  121.     }
  122. exit3:
  123.   printf("|--------------------------------|n");
  124.   fprintf(stderr,"End of Table SYSCOLUMNSn");
  125.   $ close CURS3;
  126.   
  127.   $ commit work;
  128.   return 0;
  129. errexit:
  130.   return 0;
  131. }