testd2.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. extern char *err_str[];
  29. #define G(p)
  30. {
  31.   fprintf(stderr,"%s running...",#p);
  32.   int_res = p;
  33.   if(int_res<0)
  34.     goto errexit;
  35. }
  36. #define G2(s)
  37. {
  38.   fprintf(stderr,"execute '%s' n",s);
  39.   G(SQL__execute_immediate(s));
  40. }
  41. int
  42. main(void)
  43. {
  44.   char s[100],*str[] =
  45.   { "n"
  46.     "CREATE TABLE TTBL1 (n"
  47.     "   k  int not null primary key,n"
  48.     "   t0 char(10),n"
  49.     "   k2 smallint not null unique,n"
  50.     "   t1 char(20) default user,n"
  51.     "   unique (t0,t1)n"
  52.     ")n"
  53.     ,
  54.     "INSERT INTO TTBL1(k,t0,k2)"
  55.     "VALUES ( 10, 'aaa', 2) "
  56.     ,
  57.     "DROP TABLE TTBL1"
  58.   };
  59.   int int_res, i_ind;
  60.   for ( i_ind = 0; i_ind < sizeof(str)/sizeof(char*) ; i_ind++)
  61.     {
  62.       G2(str[i_ind]);
  63.       _SQL_commit();
  64.     }
  65.   
  66.   return 0;
  67. errexit:
  68.   if (int_res < 0)
  69.     printf ("SQL_ERROR: '%s'n", gsqlca.errmsg);
  70.   else
  71.     {
  72.       int_res = SQL__execute_immediate ("COMMIT WORK");
  73.       if (int_res < 0)
  74.         printf ("SQL_ERROR: '%s'n", gsqlca.errmsg);
  75.     }
  76.   return 0;
  77. }