// BDE - (C) Copyright 1995 by Borland International // lsql.c #include "snipit.h" //===================================================================== // Function: // LocalSQL(); // // Description: // This example shows how to do local SQL on a dBASE table. //===================================================================== void LocalSQL (void) { DBIResult rslt; // Return value from IDAPI 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 name, phone, country \r\n" "FROM \"cust.dbf\" \r\n" "WHERE cust_no>4000" }; 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; } // Check for a valid cursor. if (hCur) { 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 ***"); }