test3b.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. int
  29. main(int argc, char *argv[])
  30. {
  31.   char  COLNAME[20];
  32.   int   UNTABID,tab;
  33.   short COLNO;
  34.   short NCOLS;
  35.   int   NROWS;
  36.   int   NNULCOLNUM;
  37.   char  TABNAME[20];
  38.   
  39.   tab = 3;
  40.   if(argc>1)
  41.     tab = atoi(argv[1]);
  42.   
  43.   $ WHENEVER SQLERROR  GOTO errexit;
  44.   
  45.   $ DECLARE CURS3 CURSOR FOR
  46.     (SELECT COLNAME, UNTABID, COLNO
  47.      FROM DEFINITION_SCHEMA.SYSCOLUMNS
  48.      WHERE
  49.        UNTABID = :tab and COLNO < 2
  50.     )
  51.     ;
  52.   $ DECLARE CURST CURSOR FOR
  53.     (SELECT UNTABID, TABNAME, NCOLS,NROWS, NNULCOLNUM
  54.      FROM DEFINITION_SCHEMA.SYSTABLES
  55.     )
  56.     ;
  57.   
  58.   $ WHENEVER NOT FOUND GOTO exitt;
  59.   $ open CURST;
  60.   printf("n|--------------------------------------------|n");
  61.   while(1)
  62.     {
  63.       $ fetch CURST into :UNTABID, :TABNAME, :NCOLS,:NROWS, :NNULCOLNUM;
  64.       
  65.       printf("| %3d | %18s | %3d | %3d | %3d |n",
  66.              UNTABID, TABNAME, NCOLS,NROWS, NNULCOLNUM);
  67.     }
  68. exitt:
  69.   printf("|--------------------------------------------|n");
  70.   fprintf(stderr,"End of Table SYSTABLESn");
  71.   $ close CURST;
  72.   
  73.   $ WHENEVER NOT FOUND GOTO exit3;
  74.   $ open CURS3;
  75.   printf("n|--------------------------------|n");
  76.   while(1)
  77.     {
  78.       $ fetch CURS3 into :COLNAME, :UNTABID, :COLNO;
  79.       
  80.       printf("| %3d | %18s | %3d |n",UNTABID,COLNAME,COLNO);
  81.     }
  82. exit3:
  83.   printf("|--------------------------------|n");
  84.   fprintf(stderr,"End of Table SYSCOLUMNSn");
  85.   $ close CURS3;
  86.   
  87.   $ commit work;
  88.   return 0;
  89. errexit:
  90.   return 0;
  91. }