home *** CD-ROM | disk | FTP | other *** search
- // BDE32 3.x - (C) Copyright 1996 by Borland International
-
- // lsqljoin.c
- #include "snipit.h"
-
- //=====================================================================
- // Function:
- // LocalSQLJoin();
- //
- // Description:
- // This example shows how to do local SQL on a dBASE table
- //=====================================================================
- void
- LocalSQLJoin (void)
- {
- hDBIDb hDb; // Handle to the database
- hDBICur hCur; // Handle to the Answer Table
- hDBIStmt hStmt; // Handle to the SQL Statement
-
- CHAR szQry[] = { // The Text of the SQL Statement
- "SELECT c.name, c.city, o.'total invoice', o.'amount paid'\r\n"
- "FROM 'cust.dbf' c, 'orders.db' o \r\n"
- "WHERE o.'customer no' = c.cust_no"
- // " c.cust_no < 2000\r\n"
- // "ORDER BY c.name"
- };
- DBIResult rslt;
-
- Screen("*** Local SQL Example ***\r\n");
-
- BREAK_IN_DEBUGGER();
-
- Screen(" Initializing IDAPI...");
- if (InitAndConnect(&hDb) != DBIERR_NONE)
- {
- Screen("\r\n*** End of Example ***");
- return;
- }
-
- Screen(" Setting the database directory...");
- rslt = DbiSetDirectory(hDb, (pCHAR) szTblDirectory);
- ChkRslt(rslt, "SetDirectory");
-
- Screen(" Perform the following SQL statement on the table:\r\n");
- Screen(szQry);
-
- Screen("\r\n Allocate the statement handle...");
- rslt = DbiQAlloc(hDb, qrylangSQL, &hStmt);
- if (ChkRslt(rslt, "QAlloc") != DBIERR_NONE)
- {
- CloseDbAndExit(&hDb);
- Screen("\r\n*** End of Example ***");
- return;
- }
-
- Screen(" Prepare the SQL statement...");
- rslt = DbiQPrepare(hStmt, szQry);
- if (ChkRslt(rslt, "QPrepare") != DBIERR_NONE)
- {
- CloseDbAndExit(&hDb);
- Screen("\r\n*** End of Example ***");
- return;
- }
-
- Screen(" Execute the SQL statement...");
- rslt = DbiQExec(hStmt, &hCur);
- if (ChkRslt(rslt, "QExec") != DBIERR_NONE)
- {
- CloseDbAndExit(&hDb);
- Screen("\r\n*** End of Example ***");
- return;
- }
-
- if (hCur)
- {
- // If the cursor is valid, display the information
- Screen(" Display the first 10 Records in the answer table...");
- rslt = DbiSetToBegin(hCur);
- ChkRslt(rslt, "SetToBegin");
- DisplayTable(hCur, 10);
-
- Screen("\r\n Close the cursor to the answer set...");
- rslt = DbiCloseCursor(&hCur);
- ChkRslt(rslt, "CloseCursor");
- }
- else
- {
- Screen(" Could not get cursor to the answer table");
- }
-
- Screen(" Release memory allocated for the query...");
- rslt = DbiQFree(&hStmt);
- ChkRslt(rslt, "QryFree");
-
- Screen(" Close the database and exit IDAPI...");
- CloseDbAndExit(&hDb);
-
- Screen("\r\n*** End of Example ***");
- }
-