1

I've followed this post and it's not working. Can someone tell me what else to check?

Steps I followed:

  1. I added dll's from my current install of Oracle (11gR2_x32) to the root of my project. I did not use the basic-lite as the post stated but I assumed that the dll's would be the same, right?

    • oci.dll
    • ociw32.dll
    • Oracle.DataAccess.DLL
    • orannzsbb11.dll
    • oraocci11.dll
    • oraociicus11.dll
    • OraOps11w.dll
  2. Selected each dll within my project and set the 'Build Action' to 'Content' and 'Copy to Output Directory' to 'Copy Always'

  3. Added a reference to Oracle.DataAccess

  4. Added 'Imports Oracle.DataAccess.Client' to my vb code.

The code works fine but it still requires the user to install Oracle. My intent was to not have them install oracle. I verified that when they install my program all the dll's are present in the program folder.

What else can I check?

3
  • the dlls are for Oracle client - not server Commented Oct 11, 2012 at 6:02
  • correct, I want the client. I'm not trying to install the server. The server already exist elsewhere. my program just accesses the server. Commented Oct 11, 2012 at 19:17
  • then it should work - are you getting an error message? You'll probably need the ODP.net dlls too - take a look stackoverflow.com/a/1258322/92837 Commented Oct 11, 2012 at 19:35

1 Answer 1

1

The code works fine but it still requires the user to install Oracle. My intent was to not have them install oracle.

To my knowledge, there is no truly "embedded" Oracle and you cannot avoid installing the Oracle database server. If you really need an embedded database, there are several good alternatives, including but not limited to: SQLite, MS SQL Server Compact or LocalDB1, Interbase/Firebird etc...

Few years back, Oracle ran a licensing program for companies, where you could integrate the Oracle setup into your own setup and make it "invisible" to users, but this would still install the full Oracle server. That's how earlier versions of PTC Pro/INTRALINK installed for example - you didn't need a separate Oracle installation. I don't know whether this licensing program is still available, but even if it were, you are probably looking at a very significant financial investment.

BTW, Fully Managed .NET provider for Oracle is currently in beta - this will ease the client deployment even further and eliminate 32-bit vs 64-bit mismatches.


1 LocalDB is not technically "embedded" as in "in-process", but that probably won't make a difference to your end users.

Sign up to request clarification or add additional context in comments.

2 Comments

no, I think you're misinterpreting my question. I'm not trying to embed a database in my program, I'm trying to access an already existing database (external to my program).
@malt_man Then user doesn't need to "install Oracle". It should work as it is. The typical reason for not working is if you build for "Any CPU" and the user's machine happens to be of different "bitness" than yours. You should always build "x86" or "x64" (or both) and distribute the separate set of native Oracle DLLs with each. As I already mentioned, fully managed provider should eventually resolve that. Also, what kind of connection string are you using? Does it depend on tnsnames.ora and if yes do you distribute it too? Do your users get any error message?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.