testM1a.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.  * This file is written by Michael Kimelman
  9.  *
  10.  * This program is free software; you can redistribute it and/or modify it under
  11.  * the terms of the GNU General Public License as published by the Free
  12.  * Software Foundation; either version 2 of the License, or (at your option)
  13.  * any later version.
  14.  *
  15.  * This program is distributed in the hope that it will be useful, but WITHOUT
  16.  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  17.  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  18.  * more details.
  19.  *
  20.  * You should have received a copy of the GNU General Public License along with
  21.  * this program; if not, write to the Free Software Foundation, Inc.,
  22.  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  23.  *
  24.  * Contacts: gss@ispras.ru
  25.  */
  26. #include <stdio.h>
  27. #include <stdlib.h>
  28. char *sh;
  29. int  t2m;
  30. int
  31. simple_selection(void)
  32. {
  33.   int k;
  34.   $ select count(*)
  35.     into :k
  36.     from tbl0
  37.     where 
  38.           k1 in (select distinct k1 from tbl1 where t1 like :sh escape '#' ) 
  39.       and not ( 0 =   
  40.           ( select count (distinct k2) from tbl2 where k2=tbl0.k2 and t2<:t2m) )
  41.       and taila>0
  42.     ;
  43.   return 0;
  44.  fatal_exit:
  45.   return SQLCODE;
  46. }
  47. int
  48. commit_work(void)
  49. {
  50.   $ commit work;
  51.   return 0;
  52. fatal_exit:
  53.   return SQLCODE;
  54. }
  55. int
  56. rollback_work(void)
  57. {
  58.   $ rollback work;
  59.   return 0;
  60. fatal_exit:
  61.   return SQLCODE;
  62. }
  63. void
  64. run(char *tn,int (*f)(void))
  65. {
  66.   fprintf(stderr,"Run %s ...",tn);
  67.   if(f())
  68.     {
  69.       fprintf(stderr,": failed(%d): '%s'n",SQLCODE,gsqlca.errmsg);
  70.       exit(1);
  71.     }
  72.   else
  73.     fprintf(stderr,": OKn");
  74. }
  75. #define RUN(tn) run(#tn,tn)
  76. static void
  77. refresh_settings(void)
  78. {
  79.   t2m= 100;
  80.   sh = "%34%";               /* filter for "   %010d   " strings         */
  81. }
  82. int main(int argc,char **argv)
  83. {
  84.   refresh_settings();
  85.   RUN(simple_selection);
  86.   RUN(commit_work);
  87.   return 0;
  88. }