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

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  FILE: example1.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.     char objtype[3] = "U";
  57.     char objname[81];
  58.     char cmd[] = "select name from sysobjects where type=?";
  59.     EXEC SQL END DECLARE SECTION;
  60.  
  61.     // install Embedded SQL for C error handler
  62.     EXEC SQL WHENEVER SQLERROR CALL ErrorHandler();
  63.     // set Embedded SQL for C options
  64.     EXEC SQL SET OPTION LOGINTIME 10;
  65.     EXEC SQL SET OPTION QUERYTIME 100;
  66.  
  67.     // display logo
  68.     printf("Sample Embedded SQL for C application\n");
  69.  
  70.     // get info for CONNECT TO statement
  71.     nRet = GetConnectToInfo(argc, argv,
  72.         szServerDatabase,
  73.         szLoginPassword);
  74.     if (!nRet)
  75.     {
  76.         return (1);
  77.     }
  78.  
  79.     // attempt connection to SQL Server
  80.     EXEC SQL CONNECT TO :szServerDatabase
  81.         USER :szLoginPassword;
  82.     if (SQLCODE == 0)
  83.     {
  84.         printf("Connection to SQL Server established\n");
  85.     }
  86.     else
  87.     {
  88.         // problem connecting to SQL Server
  89.         printf("ERROR: Connection to SQL Server failed\n");
  90.         return (1);
  91.     }
  92.  
  93.     EXEC SQL SET CURSORTYPE CUR_STANDARD;
  94.  
  95.     EXEC SQL DECLARE C1 CURSOR FOR stmt1;
  96.  
  97.     // Input object type, prepare statement, use cursor to get data.
  98.     printf( "Enter Object Type (U/S/P/R/D/TR) ");
  99.     gets( objtype );
  100.  
  101.     EXEC SQL PREPARE stmt1 FROM :cmd;
  102.  
  103.     EXEC SQL OPEN C1 USING :objtype;
  104.  
  105.     // perform until sqlcode not = zero.
  106.     while (SQLCODE == 0)
  107.     {
  108.         EXEC SQL FETCH C1 INTO :objname;
  109.  
  110.         if (SQLCODE == 0)
  111.             printf("%s\n", objname);
  112.     }
  113.  
  114.     // Close cursor
  115.     EXEC SQL CLOSE C1;
  116.  
  117.     // disconnect from SQL Server
  118.     EXEC SQL DISCONNECT ALL;
  119.  
  120.     return (0);
  121. }
  122.  
  123. ///////////////////////////////////////////////////////////////////////////////
  124. //
  125. //  FUNCTION: ErrorHandler()
  126. //
  127. //      Called on Embedded SQL for C error, displays fields from SQLCA
  128. //
  129. //  PARAMETERS: none
  130. //
  131. //  RETURNS: none
  132. //
  133. //  COMMENTS:
  134. //
  135. ///////////////////////////////////////////////////////////////////////////////
  136.  
  137. void ErrorHandler (void)
  138. {
  139.     // display error information from SQLCA
  140.     printf("Error Handler called:\n");
  141.     printf("    SQL Code = %li\n", SQLCODE);
  142.     printf("    SQL Server Message %li: '%Fs'\n", SQLERRD1, SQLERRMC);
  143. }
  144.