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

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  FILE: genchar.sqc
  4. //              
  5. //      Generic 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. #include <stddef.h>         // standard C run-time header
  19. #include <stdio.h>          // standard C run-time header
  20. #include "gcutil.h"         // utility header
  21. #include "genchar.h"        // specific to this program
  22.  
  23. // GLOBAL VARIABLES
  24.  
  25. ///////////////////////////////////////////////////////////////////////////////
  26. //
  27. //  FUNCTION: main()
  28. //
  29. //      Main application
  30. //
  31. //  PARAMETERS:
  32. //
  33. //      argc - count of command line args
  34. //      argv - array of command line argument strings
  35. //      envp - array of environment strings
  36. //
  37. //  RETURNS: 0 if successful, 1 if error
  38. //
  39. //  COMMENTS:
  40. //
  41. ///////////////////////////////////////////////////////////////////////////////
  42.  
  43. int main (
  44.     int argc,
  45.     char** argv,
  46.     char** envp)
  47. {
  48.     int nRet;           // for return values
  49.  
  50.     EXEC SQL BEGIN DECLARE SECTION;
  51.     // for CONNECT TO
  52.     char szServerDatabase[(SQLID_MAX * 2)+2] = "";
  53.     char szLoginPassword[(SQLID_MAX * 2)+2] = "";
  54.     // for query of pubs..authors
  55.     char szLastName[50] = "";
  56.     char szFirstName[50] = "";
  57.     EXEC SQL END DECLARE SECTION;
  58.  
  59.     // install Embedded SQL for C error handler
  60.     EXEC SQL WHENEVER SQLERROR CALL ErrorHandler();
  61.     // set Embedded SQL for C options
  62.     EXEC SQL SET OPTION LOGINTIME 10;
  63.     EXEC SQL SET OPTION QUERYTIME 100;
  64.  
  65.     // display logo
  66.     printf("Generic Embedded SQL for C application\n");
  67.  
  68.     // get info for CONNECT TO statement
  69.     nRet = GetConnectToInfo(argc, argv,
  70.         szServerDatabase,
  71.         szLoginPassword);
  72.     if (!nRet)
  73.     {
  74.         return (1);
  75.     }
  76.  
  77.     // attempt connection to SQL Server
  78.     EXEC SQL CONNECT TO :szServerDatabase
  79.         USER :szLoginPassword;
  80.     if (SQLCODE == 0)
  81.     {
  82.         printf("Connection to SQL Server established\n");
  83.     }
  84.     else
  85.     {
  86.         // problem connecting to SQL Server
  87.         printf("ERROR: Connection to SQL Server failed\n");
  88.         return (1);
  89.     }
  90.  
  91.     // prompt user for query criteria
  92.     printf("Type an author's last name: ");
  93.     gets(szLastName);
  94.  
  95.     // query the authors table
  96.     EXEC SQL SELECT au_fname INTO :szFirstName
  97.         from authors where au_lname = :szLastName;
  98.     if (SQLCODE == 0)
  99.     {
  100.         printf("That author's first name is: %s", szFirstName);
  101.     }
  102.     else
  103.     {
  104.         if (SQLCODE == 100)
  105.         {
  106.             // no rows match the given criteria
  107.             printf("That author was not found\n");
  108.         }
  109.         else
  110.         {
  111.             // problem executing query
  112.             printf("ERROR: Executing SELECT query\n");
  113.         }
  114.     }
  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.