Not only will your application take maximum advantage of both products, your application development process will also benefit from the following key features:
Both online transaction and batch processing applications can benefit from Oracle's performance features. Direct Oracle Access, as the name suggests, directly accesses the Oracle Interface. This guarantees optimal performance for standard database access functions. Support for Array Fetching, Array DML, PL/SQL Blocks, PL/SQL Tables and the Direct Path Load Engine enable you to optimize your application's performance critical functions even more.
Easy application distribution
A Direct Oracle Access application does not require middleware like the BDE or ODBC, it merely requires Oracle SQL*Net or Net8. Consequently you can deploy your application without many of the version dependency or configuration problems typically involved with middleware installation.
Oracle Package support
Most PL/SQL code in Oracle databases is programmed in packages. Direct Oracle Access provides a TOraclePackage component that allows you to easily call packaged program units without detailed declarations of these program units and their parameters.
Furthermore Direct Oracle Access includes a Package Wizard that can generate classes to encapsulate the program units and record types defined in packages. This will make your Oracle packages a natural extension of the Object Pascal or C++ language.
The dataset component in Direct Oracle Access supports Oracle record locking, record refreshing, server generated values and automatic sequence value generation. Master/detail relations can automatically be setup if a foreign key exists between the master and detail table.
The TOracleDataSet can use much of the information in the Oracle Dictionary at run time. Server Constraints can be checked on the client, and constraint error messages can be read from a message table. Format masks, range values and default values can also be read from the dictionary. This allows you to create applications with a minimum amount of 'database knowlegde' compiled into the executable, dynamically adopting changes in the database without even recompiling it.
Query By Example mode
The TOracleDataSet component has a Query By Example mode that enables you to provide QBE Forms in your application without any additional programming, and without any additional components or controls. The resulting QBE queries are performed on the Oracle Server, so that performance will be optimal and network traffic will be minimal.
To monitor the database access activities of your Direct Oracle Access application you can use the Oracle Monitor utility. It displays the SQL, variables, timestamp, elapsed time, network statistics, database statistics and query execution plan of each activity. This can be helpful to find performance bottlenecks, for tuning purposes, and to solve application errors.
Alert and Pipe events
The Oracle Server includes a dbms_alert and dbms_pipe package for event processing. The TOracleEvent in Direct Oracle Access can function as a receiver for these events. It works in a background thread of your application, and can propagate database events to the familiar object events. These events can occur synchronously or asynchronously with the main thread of your application.
If you need to execute many data definition language (DDL) statements, for example toperform the database installation part of your application, you can use the TOracleScriptcomponent. It has a property editor that allows you to develop the script and theindividual commands. The extendible script language follows the basic SQL*Plus syntax andsupports all SQL statements. It also supports substitution variables to make your scripts customizable.
To take advantage of the Advanced Queuing option of Oracle8 you can make use of the TOracleQueue component. The TOracleQueue component encapsulates the basic functionality of the DBMS_AQ package. It provides a convenient way to enqueue messages into a queue or to dequeue messages from a queue. Messages can be dequeued in a background thread of your application, and the events that are generated in threaded mode can occur synchronously or asynchronously with the main thread of your application.
In server applications that frequently need to create sessions to process requests from client applications, it may be useful to use connection pooling. Without a pooling concept, each request could lead to an actual database logon and logoff. By using the TOracleSessionPool component, you can maintain a pool of database sessions that can be used and reused for different requests. You can define the minimum an maximum number of sessions in the pool, define the TimeOut behavior for idle sessions in the pool, and preset the username, password and database.
Support for Oracle specific features
Direct Oracle Access supports many Oracle specific features. Besides the features mentioned above, it supports Oracle8 and Oracle8i features like LOB Locators, Objects & References, Password expiration, External Procedure development, and the Oracle Services for MTS.
Standard or Object version
Oracle Monitor Pro option
The Direct Oracle Access components are available in two versions, the Standard version and the Object version. The Object version allows you to use Oracle8's Object extension through the TOracleObject and TOracleReference objects.
The Oracle Monitor allows you to monitor the database activities that your Direct Oracle Access applications generate. The Lite version is available for free, and the Pro version can be purchased as an option for a Direct Oracle Access license. The Pro version includes additional features like database and network statistics, and query plan analysis.
You can additionally order the Sourcecode option, which is not related to the number of Direct Oracle Access licenses. Direct Oracle Access is programmed in Delphi, but the sourcecode can be compiled in C++Builder as well.