home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Internet Business Development Kit / PRODUCT_CD.iso / sqlsvr / esqlc / esql / samples.c / example2.sqc < prev    next >
Encoding:
Text File  |  1995-11-21  |  3.7 KB  |  143 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  FILE: example2.sqc
  4. //              
  5. //      Sample Embedded SQL for C application
  6. //
  7. //  FUNCTIONS:
  8. //
  9. //      main() - Main program
  10. //      ErrorHandler - Embedded SQL for C error handler
  11. //
  12. //  COMMENTS:
  13. //
  14. //      Copyright (C) 1992 - 1994 Microsoft Corporation
  15. //
  16. ///////////////////////////////////////////////////////////////////////////////
  17.  
  18. // function prototypes (instead of header file)
  19. void ErrorHandler (void);
  20.  
  21. #include <stddef.h>         // standard C run-time header
  22. #include <stdio.h>          // standard C run-time header
  23. #include "gcutil.h"         // utility header
  24.  
  25. // GLOBAL VARIABLES
  26.  
  27. ///////////////////////////////////////////////////////////////////////////////
  28. //
  29. //  FUNCTION: main()
  30. //
  31. //      Main application
  32. //
  33. //  PARAMETERS:
  34. //
  35. //      argc - count of command line args
  36. //      argv - array of command line argument strings
  37. //      envp - array of environment strings
  38. //
  39. //  RETURNS: 0 if successful, 1 if error
  40. //
  41. //  COMMENTS:
  42. //
  43. ///////////////////////////////////////////////////////////////////////////////
  44.  
  45. int main (
  46.     int argc,
  47.     char** argv,
  48.     char** envp)
  49. {
  50.     int nRet;           // for return values
  51.  
  52.     EXEC SQL BEGIN DECLARE SECTION;
  53.     // for CONNECT TO
  54.     char szServerDatabase[(SQLID_MAX * 2)+2] = "";
  55.     char szLoginPassword[(SQLID_MAX * 2)+2] = "";
  56.     struct
  57.     {
  58.             char    stor_id[5];
  59.             char    ord_num[21];
  60.             char    date[32];
  61.             long    qty;
  62.             char    payterms[13];
  63.             char    title_id[11];
  64.     } sale_rec;
  65.     EXEC SQL END DECLARE SECTION;
  66.  
  67.     // install Embedded SQL for C error handler
  68.     EXEC SQL WHENEVER SQLERROR CALL ErrorHandler();
  69.     // set Embedded SQL for C options
  70.     EXEC SQL SET OPTION LOGINTIME 10;
  71.     EXEC SQL SET OPTION QUERYTIME 100;
  72.  
  73.     // display logo
  74.     printf("Sample Embedded SQL for C application\n");
  75.  
  76.     // get info for CONNECT TO statement
  77.     nRet = GetConnectToInfo(argc, argv,
  78.         szServerDatabase,
  79.         szLoginPassword);
  80.     if (!nRet)
  81.     {
  82.         return (1);
  83.     }
  84.  
  85.     // attempt connection to SQL Server
  86.     EXEC SQL CONNECT TO :szServerDatabase
  87.         USER :szLoginPassword;
  88.     if (SQLCODE == 0)
  89.     {
  90.         printf("Connection to SQL Server established\n");
  91.     }
  92.     else
  93.     {
  94.         // problem connecting to SQL Server
  95.         printf("ERROR: Connection to SQL Server failed\n");
  96.         return (1);
  97.     }
  98.  
  99.     EXEC SQL SET CURSORTYPE CUR_BROWSE;
  100.  
  101.     EXEC SQL DECLARE C1 CURSOR FOR
  102.         SELECT stor_id, ord_num, CONVERT(char(30), ord_date, 3), qty, payterms, title_id
  103.         FROM sales;
  104.  
  105.     EXEC SQL OPEN C1;
  106.  
  107.     while( SQLCODE == 0 )
  108.     {
  109.         EXEC SQL FETCH C1 INTO :sale_rec;
  110.         printf( "%4s %15s %15s %4ld %12s %10s\n", sale_rec.stor_id, sale_rec.ord_num,
  111.             sale_rec.date, sale_rec.qty, sale_rec.payterms, sale_rec.title_id );
  112.     }
  113.     
  114.     EXEC SQL CLOSE C1;
  115.  
  116.     // disconnect from SQL Server
  117.     EXEC SQL DISCONNECT ALL;
  118.  
  119.     return (0);
  120. }
  121.  
  122. ///////////////////////////////////////////////////////////////////////////////
  123. //
  124. //  FUNCTION: ErrorHandler()
  125. //
  126. //      Called on Embedded SQL for C error, displays fields from SQLCA
  127. //
  128. //  PARAMETERS: none
  129. //
  130. //  RETURNS: none
  131. //
  132. //  COMMENTS:
  133. //
  134. ///////////////////////////////////////////////////////////////////////////////
  135.  
  136. void ErrorHandler (void)
  137. {
  138.     // display error information from SQLCA
  139.     printf("Error Handler called:\n");
  140.     printf("    SQL Code = %li\n", SQLCODE);
  141.     printf("    SQL Server Message %li: '%Fs'\n", SQLERRD1, SQLERRMC);
  142. }
  143.