// BDE - (C) Copyright 1995 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) { DBIResult rslt; // Return value from IDAPI functions 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 c, orders o \r\n" "WHERE o.'customer no' = c.cust_no and\r\n" " c.cust_no < 2000\r\n" "ORDER BY c.name" }; 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 Prepare the SQL statement..."); rslt = DbiQPrepare(hDb, qrylangSQL, szQry, &hStmt); 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 ***"); }