{ qbe2.pas } program QBE2; {$IfDef VER80} uses SnipTool, SnipData, SysUtils, WinTypes, WinProcs, DbiProcs, DbiTypes, DbiErrs; {$Else} uses WinTypes, WinCrt, Strings, DbiProcs, DbiTypes, DbiErrs, SnipTool, SnipData; {$EndIf} {===================================================================== Code: QBE2(); Input: None. Return: None. Description: This example shows how to query non-SQL tables using the DbiQExec function. ===================================================================== } var hDb: hDBIDb; { Handle to the Database } hCur: hDBICur; { Cursor to the result set } hStrmt: hDBIStmt; { Handle to the Query } const eDBIQryLang: DBIQryLang = qrylangQBE; { Language of the Query } szQry = 'CUST.DBF | Cust_No | Name | Phone | State_prov |'#10#13+ ' | _x | Check | Check | = CA |'#10#13+ #10#13+ 'ORDERS.DB | Customer No | Ship Date |'#10#13+ ' | _x | Check |'#10#13; begin Screen('*** Expanded "Query by Example" Example ***'); Screen(''); Screen(' Initializing IDAPI...'); if (InitAndConnect(hDb) <> DBIERR_NONE) then { Terminate example if } begin { Initialization fails } Screen(''); Screen('*** End of Example ***'); exit; end; Screen(' Setting the default Database directory...'); ChkRslt(DbiSetDirectory(hDb, pCHAR(szTblDirectory)), DBIERR_NONE, ' Error - SetDirectory.'); Screen(' Perform the following Query on the table:'); Screen(''); Screen(szQry); Screen(' Prepare the query command...'); if (ChkRslt(DbiQPrepare(hDb, eDBIQryLang, szQry, hStrmt), DBIERR_NONE, ' Error - QPrepare.') <> DBIERR_NONE) then begin CloseDbAndExit(hDb); Screen(''); Screen('*** End of Example ***'); exit; end; Screen(' Execute the query...'); if (ChkRslt(DbiQExec(hStrmt, @hCur), DBIERR_NONE, ' Error - QExec.') <> DBIERR_NONE) then begin CloseDbAndExit(hDb); Screen(''); Screen('*** End of Example ***'); exit; end; { Determine if a valid hCurs was returned. } if Assigned (hCur) then begin Screen(' Display the first 10 Records in the answer table...'); ChkRslt(DbiSetToBegin(hCur), DBIERR_NONE, ' Error - SetToBegin.'); DisplayTable(hCur, 10); Screen(''); Screen(' Close the cursor to the answer set... '); ChkRslt(DbiCloseCursor(hCur), DBIERR_NONE, ' Error - CloseCursor.'); end else begin Screen(' Could not get cursor to the answer table.'); end; Screen(''); Screen(' Release memory allocated for the Query...'); ChkRslt(DbiQFree(hStrmt), DBIERR_NONE, ' Error - QFree.'); Screen(' Close the Database and exit IDAPI...'); CloseDbAndExit(hDb); Screen(''); Screen('*** End of Example ***'); end.