This is a migrated thread and some comments may be shown as answers.

Provider is not compatable

5 Answers 145 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Genocide
Top achievements
Rank 2
Genocide asked on 24 Mar 2011, 05:28 AM
I am having all sort of issues with OpenAccess and Oracle.

The latest is having upgradede to a trial version of 2011.1.316, I couldn't get my existing revese engineered diagram to work with this version either.  Attempting to create a new domain model using the wizard, I am able to setup a new DB connection to my Oracle database, but when attempting to choose object in the schema to model, I'm faced with the message:
"Unable to retrieve the database schema information.
Reason: The provider is not compatable with the version of Oracle client."

OCI version: 11.1
Database: Oracle Release 10.2.0.4.0 Enterprise Edition.

The previous model was created using OpenAccess 2010.2.714, which reverese engineered a table and a view.  Whenever I try to access the view object, using either version of ORM, I get the error:
ORA-00942: table or view does not exist Telerik.OpenAccess.RT.sql.SQLException: ORA-00942: table or view does not exist
   at Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.executeQuery(String sql)
   at OpenAccessRuntime.Relational.sql.HighLowRelationalKeyGenerator.IsCached(Connection con, RelationalKeyGeneratorInfoCache infoCache, String tab, String kCol, String vCol, String key, Boolean& ret)
   at OpenAccessRuntime.Relational.sql.HighLowRelationalKeyGenerator.init(String className, RelationalTable theClassTable, Connection con, RelationalKeyGeneratorInfoCache relationalKeyGeneratorInfoCache)
   at OpenAccessRuntime.Relational.RelationalStorageManagerFactory.init(Boolean full)

The compiler error lists "The persistent type 'MyApp.DataObject1' has no primary key specified".  The entity objects are set to Kind=ReadOnly.

What am I missing here?  It's driving me bonkers.

5 Answers, 1 is accepted

Sort by
0
Jan Blessenohl
Telerik team
answered on 24 Mar 2011, 06:27 PM
Hi Genocide,
Are this 2 problems?

The first one is maybe because of the way the connection string is specified. We have switched to the Oracle ODP provider because the Microsoft driver is not longer supported. Maybe the wrong provider type is used in your connection string.

The second is a problem that OpenAccess does not work at the moment with object that does not have a unique identity defined. If you specify identity fields in the designer at the class mapped to the view it will work.

Greetings,
Jan Blessenohl
the Telerik team
0
Genocide
Top achievements
Rank 2
answered on 25 Mar 2011, 02:38 AM
Yes, I remember Microsoft killing off development of the Oracle provider.
My connection string specifies providerName="Oracle.DataAccess.Client" Is this not the ODP?
With ORM 2010.2.714 I tried to specify the use of ODP (when it wasn't the default), but couldn't get that too work either.

I'm not sure I follow how to create a fake identity field in the model class, what is there to map it too.  The view the object represents and its underlying tables lack any identity fields.  I can understand identity for readWrite, but for readOnly it's getting painful.
0
Jan Blessenohl
Telerik team
answered on 25 Mar 2011, 10:42 AM
Hello Genocide,
Maybe you did not install the Oracle .NET driver on your system? Can you have a look into the GAC if the Oracle.DataAccess.Client dll is there?

We have the views support without pks on the list for the next major version.

Greetings,
Jan Blessenohl
the Telerik team
0
Genocide
Top achievements
Rank 2
answered on 28 Mar 2011, 12:36 AM
Hi Jan,

It also raises the point of why would the wizard build the objects if the ODP isn't working.

Here is an extract from the development PCs GAC:
Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86
Oracle.DataAccess, Version=2.112.1.2, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86
Policy.2.102.Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86
Policy.2.111.Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86
Policy.2.112.Oracle.DataAccess, Version=2.112.1.2, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86
System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86
Oracle.DataAccess, Version=4.112.1.2, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86
System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86

The Oracle Inventory (universal installer) lists:
Oracle Homes
+ OraClient11g_home1
| + Oracle Data Access Components for Oracle Client 11.2.0.1.2
|   + Oracle Data Provider for .NET 11.2.0.1.12
|   + Oracle Providers for ASP.Net 11.2.0.1.12
|   + Oracle Developer Tools for Visual Studio 11.2.0.1.12
|   + Oracle Povider for OLE DB 11.2.0.1.12
|   + Oracle Objects for OLE 11.2.0.1.12
|   + Oracle Services For Microsoft Transaction Server 11.2.0.1.12
|   + Oracle Data Access Components Documentation for Visual Studio 2005 and 2008 11.2.0.1.12
|   + Oracle Data Access Components Documentation for Visual Studio 2010 11.2.0.1.12
|   + Oracle Universal Installer 11.2.0.1.12
|   + Oracle Instant Client 11.2.0.1.12
+ Oracle_9iClient
+ OraClient11g_home2
| + Oracle Client 11.2.0.1.0
|   + SQL*Plus 11.2.0.1.0
|   + Oracle JDBC/THIN Interfaces 11.2.0.1.0
|   + Oracle Call Interface (OCI) 11.2.0.1.0
|   + Oracle ODBC Driver 11.2.0.1.0
|   + Oracle SQL Developer 11.2.0.1.0
|   + Oracle Objects for OLE 11.2.0.1.0
|   + Oracle Provider for OLE DB 11.2.0.1.0
|   + Oracle Data Provider for .NET 11.2.0.1.0
|   + Oracle Providers for ASP.NET 11.2.0.1.0
|   + Installation Common Files  11.2.0.1.0
|   + Oracle One-Off Patch Installer 11.2.0.0.2
|   + Oracle Universal Installer 11.2.0.1.0
|   + Deinstallation Tool 11.2.0.1.0

It's all there.
0
Jan Blessenohl
Telerik team
answered on 28 Mar 2011, 11:59 AM
Hello Genocide,
OpenAccess links against a 10.2 version of the client, what means that the
Policy.2.102.Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86
redirects the version to 2.112.1.0. This is the problem because there is no matching Oracle Instant Client version installed. If you add this or uninstall everything and only install the newer version you will get the policy file from the newer version and it should work.

Regards,
Jan Blessenohl
the Telerik team
Tags
General Discussions
Asked by
Genocide
Top achievements
Rank 2
Answers by
Jan Blessenohl
Telerik team
Genocide
Top achievements
Rank 2
Share this question
or