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 / stat2.e < prev    next >
Text File  |  2000-06-23  |  2KB  |  94 lines

  1. /*
  2.  *  Program type:   Embedded Static SQL
  3.  *
  4.  *  Description:
  5.  *        This program demonstrates a singleton select.
  6.  *        A full name and phone number are displayed for
  7.  *        the CEO of the company.
  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 <stdlib.h>
  31. #include <stdio.h>
  32.  
  33. #define    FIRSTLEN    15
  34. #define    LASTLEN        20
  35. #define EXTLEN        4
  36. #define DEPTNO        3
  37. #define PHONELEN    20
  38.  
  39. EXEC SQL
  40.     BEGIN DECLARE SECTION;
  41. EXEC SQL
  42.     END DECLARE SECTION;
  43.  
  44.  
  45. int main (void)
  46. {
  47.     char first[FIRSTLEN + 1];
  48.     char last[LASTLEN + 1];
  49.     char ext[EXTLEN + 1];
  50.     char phone[PHONELEN + 1];
  51.     char dept[DEPTNO + 1];
  52.  
  53.     /*
  54.      *  Assume there's only one CEO.
  55.      *  Select the name and phone extension.
  56.      */
  57.     EXEC SQL
  58.         SELECT first_name, last_name, phone_ext, dept_no
  59.         INTO :first, :last, :ext, :dept
  60.         FROM employee
  61.         WHERE job_code = 'CEO';
  62.  
  63.     /* Check the SQLCODE to make sure only 1 row was selected. */
  64.     if (SQLCODE)
  65.     {
  66.         isc_print_sqlerror((short)SQLCODE, gds__status);
  67.         exit(1);
  68.     }
  69.  
  70.     /*
  71.      *  Also, select the department phone number.
  72.      */
  73.  
  74.     EXEC SQL
  75.         SELECT phone_no
  76.         INTO :phone
  77.         FROM department
  78.         WHERE dept_no = :dept;
  79.  
  80.     if (SQLCODE)
  81.     {
  82.         isc_print_sqlerror((short)SQLCODE, gds__status);
  83.         exit(1);
  84.     }
  85.  
  86.     printf("President:  %s %s\t\t", first, last);
  87.     printf("Phone #:  %s  x%s\n", phone, ext);
  88.  
  89.     EXEC SQL
  90.         COMMIT RELEASE;
  91. exit(0);
  92. }
  93.  
  94.