home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 January / Chip_2001-01_cd1.bin / tema / interb / InterBase_WI-V6.0-server.exe / server / examples / gpre / stat1.e < prev    next >
Text File  |  2000-06-23  |  2KB  |  105 lines

  1. /*
  2.  *    Program type:   Embedded Static SQL
  3.  *
  4.  *    Description:
  5.  *        This program performs a simple update to an existing
  6.  *        table, asks the user whether to save the update, and
  7.  *        commits or undoes the transaction accordingly.
  8.  * The contents of this file are subject to the Interbase Public
  9.  * License Version 1.0 (the "License"); you may not use this file
  10.  * except in compliance with the License. You may obtain a copy
  11.  * of the License at http://www.Interbase.com/IPL/
  12.  *
  13.  * Software distributed under the License is distributed on an
  14.  * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
  15.  * or implied. See the License for the specific language governing
  16.  * rights and limitations under the License.
  17.  *
  18.  * The Original Code was created by Interbase Software Corporation
  19.  * and its successors. Portions created by Borland/Inprise are
  20.  * Copyright (C) 1992-1998 and 1999-2000 Borland/Inprise. Portions
  21.  * created by InterBase Software Corporation are Copyright (C)
  22.  * 1998-1999 InterBase Software Corporation.
  23.  *
  24.  * Copyright (C) 2000 InterBase Software Corporation
  25.  * All Rights Reserved.
  26.  * Contributor(s): ______________________________________.
  27.  */
  28.  
  29. #include "example.h"
  30. #include <stdio.h>
  31. #include <stdlib.h>
  32.  
  33. int do_save (void);
  34. void clean_up (void);
  35.  
  36. EXEC SQL    
  37.     BEGIN DECLARE SECTION;
  38. EXEC SQL    
  39.     END DECLARE SECTION;
  40.  
  41.  
  42. int main (void)
  43. {
  44.     clean_up();
  45.  
  46.     /* Insert a new row. */
  47.     EXEC SQL
  48.         INSERT INTO country (country, currency)
  49.         VALUES ('Mexico', 'Peso');
  50.  
  51.     /* Check the SQLCODE directly */
  52.     if (SQLCODE)
  53.     {
  54.         isc_print_sqlerror((short)SQLCODE, gds__status);
  55.         exit(1);
  56.     }
  57.  
  58.     printf("\nAdding:  country = 'Mexico', currency = 'Peso'\n\n");
  59.  
  60.     /* Confirm whether to commit the update. */
  61.     if (do_save())
  62.     {
  63.         EXEC SQL
  64.             COMMIT RELEASE;
  65.         printf("\nSAVED.\n\n");
  66.     }
  67.     else
  68.     {
  69.         EXEC SQL
  70.             ROLLBACK RELEASE;
  71.         printf("\nUNDONE.\n\n");
  72.     }
  73. return 0;
  74. }
  75.  
  76.  
  77. /*
  78.  *    Ask the user whether to save the newly added row.
  79.  */
  80. int do_save (void)
  81. {
  82.     char    answer[10];
  83.  
  84.     printf("Save?  Enter 'y' for yes, 'n' for no:  ");
  85.     gets(answer);
  86.  
  87.     return (*answer == 'y' ? 1 : 0);
  88. }
  89.  
  90.  
  91. /*
  92.  *    If this is not the first time this program is run,
  93.  *    the example row may already exist -- delete the example
  94.  *    row in order to avoid a duplicate value error.
  95.  */
  96. void clean_up (void)
  97. {
  98.     EXEC SQL
  99.         DELETE FROM country
  100.         WHERE country =  'Mexico';
  101.  
  102.     EXEC SQL
  103.         COMMIT WORK;
  104. }
  105.