I'm having difficulty connecting to an Oracle database on Windows 7x64
My environment is as follows:
- Windows 7x64
- Visual Studio 2012
- Oracle 10g (with a 32 bit client)
- WinForms
I've made the target CPU of all projects explicitly an x86 CPU (as opposed to Any or x86)
I'm connecting using DbProviderFactory.GetFactory
My ConnectionString entry in my app.config looks like this:
<add name="MYORACLE"
connectionString = "User ID=MYPASSWORD;Password=MYPASSWORd;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MYHOST)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=MYSERVICE)));"
providerName="System.Data.OracleClient" />
(I've tried it with various styles connection strings with no success)
When I compile the application, it is able to connect fine if I run the executable from the Debug folder. However, if I try to run it within Visual Studio it fails when I open the connection
ORA-06413: Connection not open.\n
Here's an example of how it's being called:
[TestMethod]
public void ConnectToOracle_Success()
{
var connectionStringSettings = ConnectionBuilder.GetConnectionStringSetting(OracleConnectionName);
var providerFactory = ConnectionBuilder.GetProviderFactory(connectionStringSettings);
ConnectionBuilder.ValidateConnectionString(connectionStringSettings);
using (var connection = providerFactory.CreateConnection())
{
Assert.IsNotNull(connection);
connection.ConnectionString = connectionStringSettings.ConnectionString;
try
{
connection.Open();
}
catch (Exception e)
{
Assert.Equals(e.Message, "");
}
}
}
I've seen something similar with Visual Basic 6 on Windows 7x64, and Oracle not liking the paths where it's installed (i.e., the parenthesis "Programs (x86)"). Is this the same sort of thing, or is there another way to convince Oracle to behave.