| Answers |
What is the difference between Standard and Professional version?
The Standard Edition represents a fully-featured ADO.NET data provider with design time support
and advanced classes. The Professional Edition adds more classes, tools, technologies,
and integration capabilities, including OraDeveloper Tools, an advanced add-in for designing
databases and easily manipulating data and schema objects from your IDE.
The following list briefly enumerates main advantages of Professional Edition.
- OraDeveloper Tools is a powerful add-in for the Microsoft Visual Studio .NET development
environment that allows to view and manipulate database connections, schema objects, design and
execute queries, view and edit data.
- OracleLoader class serves to load external data into the Oracle database extremely fast.
- OraclePackage class and Package Wizard provide access to packages stored in the Oracle database.
- DataLink class serves for universal cross-form data binding.
- OracleAlerter and OraclePipe classes serve for advanced messaging between client and server.
- OracleTrace class designed to controls server side SQL and PL/SQL tracing.
- Powerful OracleDataTable component as all-in-one table data access solution.
- OracleDataSet class allows using typed and untyped provider-specific datasets.
- DataSet Wizard greatly simplifies process of generating datasets in your application.
- DataSet Manager and DataSet Editor help managing the datasets.
- Advanced Queue technology support enables you to rich a new level of flexibility in your applications.
- Support for DBMonitor that performs per-component tracing of database events such as
SQL statement execution, commit, rollback, etc.
- Enterprise Library support allows you to take advantage of Data Access Application Block functionality.
- ASP.NET 2.0 providers support allows using the data provider in ASP.NET 2.0 provider model.
To test this functionality use the Trial Edition, which incorporates all aforementioned features.
|
| Installation and deployment |
I installed OraDirect .NET trial, then I have bought and
installed purchased version, but something went wrong.
Make sure you had uninstalled the trial version correctly.
There should be no old (trial) assemblies present in your system. Uninstall
OraDirect .NET and check your Global Assembly Cache and local folders for
CoreLab.* assemblies. Remove all CoreLab.* files and reinstall
OraDirect .NET.
To upgrade to newer version I have to uninstall OraDirect .NET first. How do I do it right?
Close all running IDEs and help collections, then choose Uninstall OraDirect .NET
link from Start menu.
You say, there are sample projects, but I can't find any.
Probably you installed OraDirect .NET not in full mode. Please choose
full when installing OraDirect .NET. All samples are installed by default in
\Program Files\OraDirect.NET\Samples folder.
Are there any restrictions for Visual Studio Express editions?
Yes, there are some. First, the provider add-in (and hence menu item) is not available.
Second, components are not registered in toolbox automatically (though you can do it manually). Finally,
advanced Visual Studio integration (DDEX) is not available, except Microsoft Web Developer 2005 Express.
What is required for my application to work on end-user machine?
To deploy applications written with OraDirect .NET you should register
necessary run-time assemblies at Global Assembly Cache for
appropriate .NET Framework or place it in the folder of your application (more on that in
the Deployment topic). You can compile the application for .NET Framework 1.1 and
deploy it to .NET Framework 2.0. Another way
to install the *.dll files needed is to launch setup program of OraDirect .NET and choose
"compact" option. Note that according to License Agreement this is the only setup mode that you can
use on target machine.
How to install OraDirect .NET on machine that does not have
Visual Studio .NET or Delphi installed?
Choose "compact" type when asked by the installer.
How to deploy web projects that use OraDirect .NET?
Place CoreLab.Oracle.dll and CoreLab.Data.dll in the bin folder of your web project. Another way
to install the *.dll files needed is to launch setup program of OraDirect .NET on a target machine and choose
"compact" option.
|
| Subscriptions |
I have a registered version of OraDirect .NET. Will I need to pay to upgrade to future versions?
Since OraDirect .NET 4.00, all upgrades to future versions are free to users with an active OraDirect .NET Subscription.
Users that have a registration for versions of OraDirect .NET prior to OraDirect .NET 4.00 will have to first upgrade to OraDirect .NET 4.00 to jump in on the Subscription Program.
What are the benefits of the OraDirect .NET Subscription Program?
The OraDirect .NET Subscription Program is an annual maintenance and support service
for OraDirect .NET users.
Users with a valid OraDirect .NET Subscription get the following benefits:
- Access to new versions of OraDirect .NET when they are released
- Access to all OraDirect .NET updates and bug fixes
- Product support through the OraDirect .NET Priority Support program
- Notification of new product versions
Priority Support is an advanced product support program which offers you
expedited individual assistance with OraDirect .NET-related questions from the OraDirect .NET developers themselves.
Priority Support is carried out over email and has a two business day response policy.
The OraDirect .NET Subscription Program is available for registered users of OraDirect .NET 4.00 and higher.
Can I use my version of OraDirect .NET after my Subscription expires?
Yes, you can. OraDirect .NET version licenses are perpetual.
I want a OraDirect .NET Subscription! How can I get one?
An annual OraDirect .NET Subscription is included when ordering or upgrading to any registered (non-Trial) edition of OraDirect .NET 4.00 or higher.
You can renew your OraDirect .NET Subscription on the OraDirect .NET Ordering Page. For more information, please contact sales@crlab.com.
Does this mean that if I upgrade to OraDirect .NET 4 from OraDirect .NET 3.x, I'll get an annual OraDirect .NET Subscription for free?
Yes, you will.
How do I upgrade to OraDirect .NET 4.00?
To upgrade to OraDirect .NET 4.00, you can get a Version Update from the OraDirect .NET Ordering Page. For more information, please contact sales@crlab.com.
|
| Licensing |
What is the licensing you use?
OraDirect .NET uses .NET component licensing. To build operational
application OraDirect .NET requires valid license. If no license is available,
OraDirect .NET does not work.
How to embed license into my application?
Usually you do not have to care about embedding license in your application.
When you install OraDirect .NET the system is configured so that licensing is done
transparently. License is automatically added to project when you place a OracleConnection
component onto a form.
You may be required to add license manually. It is necessary for console applications,
class libraries, some ASP.NET applications and
existing projects initially built with OraDirect .NET version that did not use component
licensing, that is, 3.20 and older. For instructions on how to add license manually refer to
Licensing
topic in OraDirect .NET help.
On opening connection I get an exception saying "License not found...". What should I do?
This generally indicates that license information could not be found, or you try to
apply it in some way that does not suit the kind of application. For example:
- File licenses.licx, required for OraDirect .NET to function properly, could not be found.
- File licenses.licx is not added as embedded resource.
- File App_Licenses.dll not found in ASP.NET applications.
To fix the problem determine type of your application and read corresponding section of "Licensing" topic.
On opening connection I get an exception saying "License not valid...". What should I do?
This means that license information was found but it is incorrect. It usually happens in the following cases:
- The project was earlier compiled with old or trial version of OraDirect .NET.
- File licenses.config used by a class library does not refer to launched executable.
- The App_Licenses.dll belongs to other application or needs to be recompiled.
- Something's wrong with the operating system or installation of OraDirect .NET.
If you encounter this problem delete all files from obj folder and rebuild the project. If this does not help send
to our support address small compiled binary with sources so we can investigate the problem detailed.
Deployed application worked fine some time, but in some moment it started
to say "Sorry, your trial period has expired". But I do not use trial version any more.
Probably you compiled the application with Trial edition of OraDirect .NET,
and deployed it with assemblies from non-trial version. In this case time limit is actual
as well. To eliminate the problem just recompile the project.
How to license ASP.NET applications?
To support server-side compilation you ought to have special assembly App_Licenses.dll
in the Bin directory of your site. To create this assembly execute Build
Runtime Licenses command in the licenses.licx file context menu in the Solution
Explorer view. Required assembly will be created automatically.
Note that this is not necessary for precompiled ASP.NET applications (if nothing is
compiled on server by user request). Precompiled applications are licensed as usual applications.
How to make OraDirect .NET work with SQL Server 2005 Business Intelligence Solutions?
To do this install OraDirect .NET on same computer where SQL Server 2005 resides.
Do end-users need a license?
No, end-users of your application do not require any license.
|
| Connection pooling |
I call OracleConnection.Open(), then Close(). Physical connection is still
visible by server. Isn't it a bug?
No, it is not. This is Connection Pooling feature. Actual connection is not closed in
order to be used later by your application. This boosts performance greatly.
I get exception "Timeout expired. The timeout period elapsed..."
What to do?
The full text of the exception is "Timeout expired. The timeout period elapsed prior to
obtaining a connection from the pool. This may have occurred because all pooled connections were in
use and max pool size was reached." It clearly states that you have run out of connections available.
To solve the problem increase Max Pool Size connection string parameter value. The default
value is 100. Another way to get extra connections is to clear one or all of the pools. Or you can
turn connection pooling off using Pooling connection string parameter.
How to prevent possible pooling problems?
You can clear the pool explicitly. Generally pool is cleared automatically
when connections are idle or closed by server. To force the operation call ClearPool or
ClearAllPools methods. Another solution is to disable the pool at all (set Pooling=false
in connection string). If this does not help, the problem is not caused by pooling.
|
| Documentation problems |
How to open documentation on OraDirect .NET?
There are several ways to open OraDirect .NET documentation:
- Use appropriate shortcut in start menu, for instance,
Start - Programs - Core Lab OraDirect .NET - OraDirect .NET documentation.
- Use command in the IDE: Tools - Oracle - OraDirect .NET Help.
- Position cursor on some class from CoreLab.Oracle and press F1.
There is also same documentation in chm format. You can download it from our site at the following address:
www.crlab.com/oranet/oranet.chm
I can't see the documentation in Visual Studio Help Collection.
Correctly installed documentation appears as separate node in combined collection
of Visual Studio and Borland Delphi. If you can't find OraDirect .NET node
there it is because you enabled topics filtering. To reveal the node set filter to "Core Lab
Documentation", or "(unfiltered)", or "Visual C#" etc.
Another possible reason is that you installed some IDE after installation of OraDirect .NET.
In this case use aforementioned methods to reach documentation.
All topics in CHM file are blank.
This can happen due to some patches from Microsoft installed on your system.
Please read this page to find possible solutions
for the problem. In most cases it is enough to right-click on the CHM file, select Properties, click on the
"Unblock" button and click "Apply" to show the contents.
|
| ADO.NET Entity Framework |
Are LINQ to SQL and Entity Framework supported?
OraDirect .NET supports the latest version of ADO.NET Entity Framework, which is Beta 3 at the moment.
For now the LINQ to SQL technology is not supported as Entity Framework provides much better capabilities.
Where do I start with Entity Framework?
First of all, launch the EDM Wizard, which generates the model, store, and mapping
definitions. Follow the wizard's instructions and in the end you will have all
necessary files ready for your Entity Framework application.
Are there any demo projects to play with?
Yes, OraDirect .NET includes two Entity Framework samples in C# and Visual Basic.
The samples demonstrate how to use several entities and a relationship between them.
|
| Miscellaneous |
How to obtain ROWID value after INSERT or UPDATE operation?
Use OracleCommand.GetRowId method.
I get concurrency error when modifying records using OracleDataAdapter
or OracleDataTable. What can be wrong?
This can happen when OracleCommandBuilder generates a query without primary key field.
To avoid it use custom update command instead of generated by OracleCommandBuilder.
This problem should not take place if primary key field participates in SELECT statement.
No components can be found in the toolbox.
This can happen if the installation encountered some problems. You can add the
components to toolbox manually. This procedure is described in the Installation article
in the documentation. Note that Microsoft Web Developer 2005 Express edition does not allow to
work with toolbox at all.
OraDirect .NET components in Visual Studio .NET 2005 are grey...
Make sure you're in Component Designer view. Do not confuse with Designer
view. To switch between views use context menu of .aspx file in Solution Explorer. This relates to Web projects only.
SQL Server Integration Service (SSIS) can't get the list of tables in my Oracle server.
This is an architecture limitation from Microsoft, SSIS understands metadata of SQL Server only.
To circumvent this you have to write queries manually.
|
| General issues related to Oracle server |
Cannot connect to server on %server name%...
This is actual for mobile edition. Use IP of the server instead of DNS name. It
is recommended to use internal IP address. For information on how to address target machine
refer to network administrator.
What about performance?
We regularly carry out performance tests on different databases with miscellaneous environments.
The tests show that OraDirect .NET is much better than ODBC, OLEDB, and ODP.NET. Besides that
OraDirect .NET has much more features than any data provider, including ODP.NET. For more
information about it please refer to online tests results.
Non-latin characters in my data are not retrieved correctly.
Use UTF-8 encoding. To enable it, set Connection.Unicode property
to true or include Unicode=true; in connection string. Keep in mind, however, that this
affects performance. So it is better to synchronize default client encoding and database objects
encoding if possible.
I successfully run illegal SQL script that issues CREATE OR REPLACE PACKAGE...
Where is my error?
Errors in CREATE OR REPLACE PACKAGE are considered as warnings in Oracle because
PACKAGE can be created with errors. You can get information about warnings using
OracleConnection.InfoMessage event.
I work with dates and get different results in Direct and OCI modes.
Direct mode does not consider Oracle client settings. The results would be
identical if you set NLS_LANG='AMERICAN....' in
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEn (change AMERICA to you real location)
or execute statement like this in Direct mode: ALTER SESSION SET NLS_TERRITORY ='AMERICA'
I can't get or pass data through Array type parameter.
Probably you use wrong type of parameter. Consider the following declarations:
TYPE PLSQLTableType IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;
TYPE NESTEDTABLEType1 IS TABLE OF VARCHAR2(20);
TYPE NESTEDTABLEType2 IS TABLE OF OBJECTTYPE;
TYPE VARRAYTYPE AS VARRAY(3) OF VARCHAR2(20);
Use PLSQLTableType with OracleDbType.VarChar and int[] types.
Use NESTEDTABLEType1 and NESTEDTABLEType2 with OracleDbType.Table and OracleTable types.
Use VARRAYTYPE with OracleDbType.Array and OracleArray types.
I have a stored procedure that returns a "cursor" parameter. What do
I need to do on client side to retrieve this parameter?
You can use OracleCommand with stored procedure call in conjunction with
OracleDataAdapter component and fill any DataSet as usual. You can receive OracleCursor
value from executed OracleCommand and receive OracleDataReader as described below:
OracleParameter p;
...
OracleDataReader r = ((OracleCursor)p.OracleValue).GetDataReader();
You can fill DataSet from any OracleCursor object as follows:
DataSet ds = new DataSet();
cmd.ExecuteNonQuery();
oracleDataAdapter1.Fill(ds, ((OracleCursor)cmd.Parameters["pcur"].OracleValue));
How to connect using OraDirect through Oracle instant client?
You have to include path to oci.dll to the first place in environment PATH variable.
Put tnsnames.ora to directory where your application is located.
|
|