In the DBTools.h++ paradigm, all results are tables. Class RWDBTable encapsulates a single result set, class RWDBResult encapsulates a sequence of 0 or more tables, and class RWDBReader provides the mechanism for reading a table. Consequently, handling multiple result sets is never a problem.
Results are created and data is exchanged between the Oracle8 Server and DBTools.h++ using the OCI8 calls OCIParse(), OCIDescribeAny(), OCIDefineByPos(), OCIStmtExecute(), OCIStmtFetch(), all executed through a reference counted OCIStmt*. The OCIStmt* is deallocated when references to it go to 0. The net effect is that all results not processed by an application are silently discarded; DBTools.h++ applications do not need to care about the state of the data. In all cases, results are requested from the Oracle8 Server several rows at a time. The number of rows requested is determined from the expected sizes of each column. Requesting several rows at a time reduces the number of network messages between the application and the Oracle8 Server, and consequently increases the application's processing speed.
©Copyright 2000, Rogue Wave Software, Inc.
Contact Rogue Wave about documentation or support issues.