2015-07-13 10 views
5

Przepraszam, jeśli jest to trochę niejasne pytanie; Postaram się sformułować to tak poprawnie, jak tylko potrafię.Czy mogę używać biblioteki ADO.NET w C++ do odczytywania Oracle DB?

Zasadniczo mam aplikację C++, która obecnie działa z back-end MSSQL (SQL Server 2014) bazy danych. Aby ułatwić komunikację z bazą danych i zbudować model encji, zebraliśmy własny zestaw klas C++, które podsumowują natywne wywołania ADO.NET; Stworzyliśmy ją w taki sposób, że deweloper musi po prostu dostarczyć dane dla ciąg połączenia i jest montowane w ramach metody połączenia tak:

string.Format(_T("DRIVER=SQL Server;SERVER=%s\\%s;UID=%s;PWD=%s;DATABASE=%s"),string,strConnInstance,strUser,strPassword,strDatabase); 

Mamy teraz wymóg odczytu z wyroczni bazy danych i zastanawiamy się, czy możemy korzystać z tych samych bibliotek połączeń. Zakładam, że będziemy musieli zmodyfikować ciąg połączenia (np. Sterownik będzie musiał przeczytać coś innego). Sądzę, że przeczytałem, że połączenie Oracle można ułatwić przy użyciu sterownika ODBC? Czy byłby to po prostu przypadek instalacji odpowiedniego sterownika (jeśli tak, który?) I zmiana argumentu "Driver" w łańcuchu połączenia (jeśli tak, do czego?).

Jeśli nie jest to takie proste, czy można to zrobić w inny sposób, czy też mamy zamiar przebudować?

Z góry dziękuję!

+2

Nie jestem pewien, czy rozumiem, ale ADO.NET jest agnostykiem bazy danych. Może korzystać z dowolnej bazy danych, jeśli masz odpowiedni sterownik. Podobnie jak SQL Server istnieją sterowniki Oracle dostarczane przez Oracle i nazywane są ODP.NET. Co nie jest jasne, wydaje się, że używasz ADO.NET z ODBC poniżej ("DRIVER = ..."), a nie oczekiwane klasy .NET SQL. Powód, dla którego to robisz, jest dość dziwny. W każdym razie istnieje również sterownik ODBC Oracle, więc możesz to przetestować. Trochę ostrzeżenia: jeśli nigdy wcześniej nie myślałeś o Oracle, są szanse, że to nie zadziała tak po prostu ... –

+1

Czy spojrzałeś pod Połączenia ODBC w Panelu Sterowania? Tam możesz skonfigurować połączenia z dowolnym typem DB, jeśli zainstalujesz odpowiednie sterowniki. – KarmaEDV

+1

Czy twoja aplikacja ma wbudowany SQL, który jest specyficzny dla db? – Wombelite

Odpowiedz

4

Odpowiedź brzmi: tak, możesz użyć ADO.NET do połączenia z Oracle. Jest mnóstwo ludzi tam na przepełnienie stosu już to robi ...

https://stackoverflow.com/search?q=oracle+ado.net

Oracle ma stronę dla dostawcy db ...

http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

Microsoft ma stronę talking about to ...

https://msdn.microsoft.com/en-us/library/77d8yct7(v=vs.110).aspx

Oracle ma nawet examp les użyciu Entity Framework ...

http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/EntityFrameworkOBE/EntityFrameworkOBE.htm http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51odt-453447.html

Istnieje mnóstwo zasobów tam.

Powiązane problemy