home *** CD-ROM | disk | FTP | other *** search
/ Total C++ 2 / TOTALCTWO.iso / borland / 32snipit.pak / LSQL.C < prev    next >
C/C++ Source or Header  |  1997-05-06  |  3KB  |  98 lines

  1. // BDE32 3.x - (C) Copyright 1996 by Borland International
  2.  
  3. // lsql.c
  4. #include "snipit.h"
  5.  
  6. //=====================================================================
  7. //  Function:
  8. //          LocalSQL();
  9. //
  10. //  Description:
  11. //          This example shows how to do local SQL on a dBASE table
  12. //=====================================================================
  13. void
  14. LocalSQL (void)
  15. {
  16.     hDBIDb      hDb = 0;    // Handle to the database
  17.     hDBICur     hCur = 0;   // Handle to the Answer table
  18.     hDBIStmt    hStmt = 0;  // Handle to the SQL statement
  19.     DBIResult   rslt;
  20.     CHAR        szQry[] = { // The Text of the SQL Statement
  21.                             "SELECT name, phone, country \r\n"
  22.                             "FROM \"cust.dbf\" \r\n"
  23.                             "WHERE cust_no > 4000"
  24.                           };
  25.  
  26.     Screen("*** Local SQL Example ***\r\n");
  27.  
  28.     BREAK_IN_DEBUGGER();
  29.  
  30.     Screen("    Initializing IDAPI...");
  31.     if (InitAndConnect(&hDb) != DBIERR_NONE)
  32.     {                                        
  33.         Screen("\r\n*** End of Example ***");
  34.         return;
  35.     }
  36.  
  37.     Screen("    Setting the database directory...");
  38.     rslt = DbiSetDirectory(hDb, (pCHAR) szTblDirectory);
  39.     ChkRslt(rslt, "SetDirectory");
  40.  
  41.     Screen("    Perform the following SQL statement on the table:\r\n");
  42.     Screen(szQry);
  43.  
  44.     Screen("    Allocate statement handle...");
  45.     rslt = DbiQAlloc(hDb, qrylangSQL, &hStmt);
  46.     if (ChkRslt(rslt, "QAlloc") != DBIERR_NONE)
  47.     {
  48.         CloseDbAndExit(&hDb);
  49.         Screen("\r\n*** End of Example ***");
  50.         return;
  51.     }
  52.  
  53.     Screen("\r\n    Prepare the SQL statement...");
  54.     rslt = DbiQPrepare(hStmt, szQry);
  55.     if (ChkRslt(rslt, "QPrepare") != DBIERR_NONE)
  56.     {
  57.         CloseDbAndExit(&hDb);
  58.         Screen("\r\n*** End of Example ***");
  59.         return;
  60.     }
  61.  
  62.     Screen("    Execute the SQL statement...");
  63.     rslt = DbiQExec(hStmt, &hCur);
  64.     if (ChkRslt(rslt, "QExec") != DBIERR_NONE)
  65.     {
  66.         CloseDbAndExit(&hDb);
  67.         Screen("\r\n*** End of Example ***");
  68.         return;
  69.     }
  70.  
  71.     // Check for a valid cursor
  72.     if (hCur)
  73.     {
  74.         Screen("    Display the first 10 Records in the answer table...");
  75.         rslt = DbiSetToBegin(hCur);
  76.         ChkRslt(rslt, "SetToBegin");
  77.         DisplayTable(hCur, 10);
  78.  
  79.         Screen("\r\n    Close the cursor to the answer set...");
  80.         rslt = DbiCloseCursor(&hCur);
  81.         ChkRslt(rslt, "CloseCursor");
  82.     }
  83.     else
  84.     {
  85.         Screen("        Could not get cursor to the answer table");
  86.     }
  87.  
  88.     Screen("    Release memory allocated for the query...");
  89.     rslt = DbiQFree(&hStmt);
  90.     ChkRslt(rslt, "QryFree");
  91.  
  92.     Screen("    Close the database and exit IDAPI...");
  93.     CloseDbAndExit(&hDb);
  94.  
  95.     Screen("\r\n*** End of Example ***");
  96. }
  97.  
  98.