Frequently Asked Questions
This page contains a list of Frequently Asked Questions for Oracle Data Access Components.
If you have encounter a question with using ODAC, please browse through this list first. If this page does not answer your question, refer to the Getting Support topic in ODAC help.
Installation and Deployment
You may be having a compatibility issue that shows up in one or more of the following forms:
You can have such problems if you installed incompatible ODAC, SDAC, MyDAC or IBDAC versions. All these products use common base packages. The easiest way to avoid the problem is to uninstall all installed DAC products and then download from our site and install the last builds.
To quickly migrate your project from BDE you can use the BDE Migration Wizard. To start it, open your project and choose BDE Migration Wizard from the ODAC menu of your IDE.
If you have purchased a full version of ODAC, you are entitled to distribute pre-compiled programs created with its use. You are not entitled to propagate any components inherited from ODAC or using ODAC source code. For more information see the License.rtf file in your ODAC installation directory.
You can create your own components that are inherited from ODAC or that use the ODAC source code. You are entitled to sell and distribute compiled application executables that use such components, but not their source code and not the components themselves.
The basic ODAC license agreement will remain the same. With ODAC 6.00, the ODAC Edition Matrix will be reorganized and a new ODAC Subscription Program will be introduced.
ODAC 6.00 will come in six editions: Trial, Standard, Professional, Professional with Sources, Developer, and Developer with Sources.
When you upgrade to the new version, your edition level will be automatically updated using the following Edition Correspondence Table.
Edition Correspondence Table for Upgrading to ODAC 6.00
|Old Edition Level||New Edition Level|
|- No Correspondence -||ODAC Standard Edition|
|ODAC Standard Edition||ODAC Professional Edition|
|ODAC Net Edition||ODAC Professional Edition|
|ODAC Professional Edition||ODAC Professional Edition with Sources|
|- No Correspondence -||ODAC Developer Edition|
|- No Correspondence -||ODAC Developer Edition with Sources|
|ODAC Trial Edition||ODAC Trial Edition|
The feature list for each edition can be found in the ODAC documentation and the ODAC website.
After ODAC 6.00, all upgrades to future versions are free to users with an active ODAC Subscription.
Users that have a registration for versions of ODAC prior to ODAC 6.00 will have to first upgrade to ODAC 6.00 to jump in on the Subscription Program.
The ODAC ODAC Subscription Program is an annual maintenance and support service for ODAC users.
Users with a valid ODAC Subscription get the following benefits:
Priority Support is an advanced product support program which offers you expedited individual assistance with ODAC-related questions from the ODAC developers themselves. Priority Support is carried out over email and has a guaranteed two business day response policy.
The ODAC Subscription Program is available for registered users of ODAC 6.00 and higher.
Yes, you can. ODAC version licenses are perpetual.
You will be able to renew your ODAC Subscription by email or on the ODAC website. For more information, please contact [email protected].
From time to time we compare ODAC with other products, and ODAC always takes first place. For more information, please refer to the ODAC performance comparison results posted on the ODAC website
Locate is performed on the client. So if you had set FetchAll to False when opening your dataset, cached only some of the rows on the client, and then invoked Locate, ODAC will have to fetch all the remaining rows from the server before performing the operation. On subsequent calls, Locate should work much faster.
If the Locate method keeps working slowly on subsequent calls or if you are working with FetchAll=True, try the following. Perform local sorting by a field that is used in the Locate method. Just assign corresponding field name to the IndexFieldNames property.
You can determine your ODAC version number in several ways:
Just set the DBAccess.ChangeCursor variable to False anywhere in your program. The cursor will stop changing after this command is executed.
The values of these properties are templates for query statements, and they cannot be manually executed. Usually there is no need to fill these properties because the text of the query is generated automatically.
In special cases, you can set these properties to perform more complicated processing during a query. These properties are automatically processed by ODAC during the execution of the Post, Delete, or RefreshRecord methods, and are used to construct the query to the server. Their values can contain parameters with names of fields in the underlying data source, which will be later replaced by appropriate data values.
For example, you can use the SQLInsert template to insert a row into a query instance as follows.
The value of the SQLInsert property will then be used by ODAC to perform the last step.
Setting these properties is optional and allows you to automatically execute additional SQL statements, add calls to stored procedures and functions, check input parameters, and/or store comments during query execution. If these properties are not set, the ODAC dataset object will generate the query itself using the appropriate insert, update, delete, or refresh record syntax.
begin Null; end;
|Precision <= IntegerPrecision, Scale = 0, EnableIntegers = True||TIntegerField|
|IntegerPrecision < Precision <= LargeIntPrecision, Scale = 0, EnableIntegers = True||TLargeIntField|
|Precision > FloatPrecision, Scale > 0, EnableNumbers = True||TOraNumberField|
|In other cases||TFloatField|
BDE provides a more or less uniform way for accessing different servers (SQL Server, MySQL, Oracle and so on)
ODAC is a set of components optimized for working specifically with Oracle, and has a server-specific component interface and advanced design-time support.
As a result, there are a number of reasons why ODAC may be better than BDE for your Oracle-based application. Some of them are enumerated here. For more information refer to the ODAC feature list.
Note TOraSession.Options.Net has been retained for backwards-compatibility. This property is depreciated as of ODAC 6.00. Use TOraSession.Options.Direct instead.
We always try to keep ODAC compatible with previous versions, but sometimes we have to change behaviour of ODAC in order to enhance its functionality, or avoid bugs. If either of changes is undesirable for your application, and you want to save the old behaviour, please refer to the "Compatibility with previous versions" topic in ODAC help. This topic describes such changes, and how to revert to the old ODAC behaviour.
This error occurs when the database server is unable to determine which record to modify or delete. In other words, there are either more than one record or no records that suit the UPDATE criteria. Such situation can happen when you omit the unique field in a SELECT statement (TCustomDADataSet.SQL) or when another user modifies the table simultaneously. This exception can be suppressed. Refer to TCustomDADataSet.Options topic in ODAC help for more information.