Oracle Homes not returning any items
Posted: Thu 03 Nov 2011 23:38
Hello,
I just upgraded to version 6.50.237 of the dotConnect Oracle component and can no longer connect at all to any Oracle database.
Stepping through the code (I have the commercial version of Reflector so I can debug your binary library) I can see that the problem is that you are throwing away my Oracle Home because you are incorrectly determining that it is not the correct 32/64 bit mix.
I am running a 32 bit application on a 64 bit system and this check here fails in OracleConnectionHome.SingletonInstance (This is reflected code so your's probably looks slightly different):
In my case nullable is not set which means that the check always fails and a valid Oracle home is thrown away. If I just remove this check everything works fine after that.
Even weirder is that if I step into the UnmanagedDllIs64Bit call it looks like it returns false (Which what I would expect), however when the value ends up in the call above it is null.
Is there any way I can stop this new check or any other way I can work around it.
I just upgraded to version 6.50.237 of the dotConnect Oracle component and can no longer connect at all to any Oracle database.
Stepping through the code (I have the commercial version of Reflector so I can debug your binary library) I can see that the problem is that you are throwing away my Oracle Home because you are incorrectly determining that it is not the correct 32/64 bit mix.
I am running a 32 bit application on a 64 bit system and this check here fails in OracleConnectionHome.SingletonInstance (This is reflected code so your's probably looks slightly different):
Code: Select all
bool? nullable = Utils.UnmanagedDllIs64Bit(strArray[i]);
if (nullable.HasValue && ((IntPtr.Size == 4) ^ nullable.Value))
{
homes.a(new OracleHome("", "", strArray[i], ""));
homes.a = homes.a((int) (homes.Count - 1));
return (b = homes);
}
Even weirder is that if I step into the UnmanagedDllIs64Bit call it looks like it returns false (Which what I would expect), however when the value ends up in the call above it is null.
Is there any way I can stop this new check or any other way I can work around it.