sql >> Database >  >> RDS >> Oracle

Oracle verbinden via ODP.NET met Enterprise Library DAAB

Ik hoop dat de volgende stappen je het juiste resultaat zullen geven.

Om System.Data.OracleClient te vervangen door Oracle.DataAccess.Client; en Oracle.DataAccess.Types

Download en installeer de nieuwste versie van Microsoft Enterprise Library ver 3.1 Kan hier worden gevonden:- http://msdn2.microsoft.com/en-us/library/aa480453.aspx

Download en installeer Oracle ODP.Net van de Oracle-website. Uw DLL-bestand moet zich bevinden in:-C:\oracle\product\11.1.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll

Wanneer u wordt gevraagd om de broncode te installeren, doet u dit door het selectievakje te gebruiken.

Als u de msi niet hebt uitgevoerd op het volgende pad C:\Program Files\Microsoft Enterprise Library 3.1 - May 2007\src

De code voor de bibliotheek wordt opgeslagen op het volgende pad C:\EntLib3Src\App Blocks

Maak een back-up van de originele src-map voor het geval je ze later nodig hebt - C:\EntLib3Src\App Blocks\Src

Open het oplossingsbestand EnterpriseLibrary.sln En ga naar het dataproject onder Data Access Application Block

Voeg Oracle.DataAccess.dll Reference toe aan het Data Project. Uw DLL-bestand moet zich bevinden in:- C:\oracle\product\11.1.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll

Zoek en vervang het volgende [U kunt in plaats daarvan de bijgewerkte DLL downloaden en gebruiken die bij dit artikel is gevoegd]

Bestand :- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Bestand:- C:\EntLib3Src\App Blocks\Src\Data\DatabaseConfigurationView.cs
Bestand:- C :\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDataReaderWrapper.cs

Zoek :- using System.Data.OracleClient;
Vervangen door:- using Oracle.DataAccess.Client; using Oracle.DataAccess.Types;

Bestand :- C:\EntLib3Src\App Blocks\Src\Data\Configuration\DbProviderMapping.cs Class:- DbProviderMapping

Zoek:- System.Data.OracleClient
Vervangen door:- Oracle.DataAccess.Client

Bestand:- C:\EntLib3Src\App Blocks\Src\Data\Configuration\Manageability\ConnectionStringsManageabilityProvider.cs
Methode:- AddAdministrativeTemplateDirectives
Vind:- System.Data.OracleClient
Vervangen door:- Oracle.DataAccess.Client

Bestand:- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Methode:- AddParameter

Zoek:- public void AddParameter(OracleCommand command, string name, OracleType oracleType, int size, ParameterDirection direction, bool nullable, byte precision, byte scale, string sourceColumn, DataRowVersion sourceVersion, object value)

Vervang door:- public void AddParameter(OracleCommand command, string name, OracleDbType oracleType, int size, ParameterDirection direction, bool nullable, byte precision, byte scale, string sourceColumn, DataRowVersion sourceVersion, object value)

Reden:- OracleType vervangen door OracleDbType als derde parameter, aangezien de typenaam in de odp.net API

Bestand:- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Verwijderen:- [OraclePermission(SecurityAction.Demand)] -

Heb je geen idee wat dat doet als iemand dat wel doet, geef dan een korte briefing over de feedbacksessie

Bestand:- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Find:- OracleType.Raw
Vervangen door:- OracleDbType.Raw

Zoek:- param.OracleType
Vervangen door:- param.OracleDbType

Zoek:- OracleType.Cursor
Vervangen door:- OracleDbType.RefCursor

Zoek:- parameter.OracleType
Vervangen door:- parameter.OracleDbType

Compileer nu en als je een foutmelding krijgt, doe dan het volgende Waarschuwing als fout:XML-commentaar op - Verwijder de gemarkeerde foutinhoud / vervang deze door een juiste opmerking Hopelijk zou het nu goed moeten compileren.

Nu kan de DLL die is gegenereerd door het compileren van het bovenstaande project worden gebruikt tegen zowel SqlServer als Oracle [ODP.Net]



  1. twee linker buitenste join werkt niet Oracle sql

  2. mysql:verbinding geweigerd bij een poging om verbinding te maken met localhost via externe IP

  3. Arabische tekst wordt opgeslagen als ???

  4. Golang, mysql:Fout 1040:Te veel verbindingen