[Mono-list] Help with ADO.NET Oracle client
David Pickens
dsp@rci.rutgers.edu
Sun, 06 Apr 2003 23:21:41 -0400
Tim,
Thanks for the response. After some more confusion, I decided to dig
around in sqlsharp to see what it was doing (that I wasn't) to get the
oracle client to work. I discovered that it connects using something
like the following:
conn.ConnectionString = connectionString;
try {
conn.Open();
if(conn.State == ConnectionState.Open)
Console.WriteLine("Open was
successfull\.");
}
Whereas the sample code from the website (go-mono.org) does:
IDbConnection dbcon;
dbcon = new OracleConnection (connectionString);
dbcon.Open ();
As far as I can tell (which is to say, on my system) the above does not
work, but changing it so that it sets dbcon.ConnectionString =
connectionString *does* work. I don't know if the website or the
OracleConnection constructor is to blame (or if it's something on my
system).
One problem down, now on to mod_mono:
You suggested missing environment variables may be to blame, so I
whipped up an ASP.NET page to print the environment variables mod_mono
sees from the System.Environment class, and snipping only the relevant
lines, it shows the following:
PATH=
/home/oracle/product/8.1.7/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin
ORACLE_HOME= /home/oracle/product/8.1.7
ORACLE_BASE= /home/oracle
LD_LIBRARY_PATH= /home/oracle/product/8.1.7/lib
ORACLE_SID= oracle
The environment seems OK. I'm hoping that Tim or someone with mod_mono
experience can tell me why it would have problems loading the oracle
libraries in mod_mono, but not in a standalone app, given the above. A
parital stack trace follows...
System.MissingMethodException: A missing method exception has occurred.
in <0x00046> 06 System.Data.OracleClient.Oci.OciEnvironmentHandle:OCIEnvCreate (intptr&,System.Data.OracleClient.Oci.OciEnvironmentMode,intptr,intptr,intptr,intptr,int,intptr)
in <0x00063> 00 System.Data.OracleClient.Oci.OciEnvironmentHandle:.ctor (System.Data.OracleClient.Oci.OciEnvironmentMode)
in <0x0002c> 00 System.Data.OracleClient.Oci.OciGlue:CreateConnection (System.Data.OracleClient.OracleConnectionInfo)
in <0x0008e> 00 System.Data.OracleClient.OracleConnection:Open ()
Thanks!
David
Tim Coleman wrote:
>On Tue, 2003-04-01 at 23:59, David Pickens wrote:
>
>
>>Let me say first that I'm new to mono, and relatively new to C# (moving
>>from C++), so the following problems could be a result of my
>>inexperience, but I can't seem to get the sample code from go-mono.org
>>to work, nor does my attempt in my own code to open the database
>>connection work. (However, using sqlsharp, /Provider Oracle, and a
>>valid connection string *does* work on the system, and I do have oracle
>>installed and working correctly on the system in question.)
>>
>>I've corrected the missing casting to strings in the demo code, but when
>>it does compile successfully, and the connection string is valid I get:
>>
>>Unhandled Exception: System.NullReferenceException: A null value was
>>found where an object instance was required
>>in <0x00018> 00 System.Data.OracleClient.Oci.OciServerHandle:Attach ()
>>in <0x00470> 00 System.Data.OracleClient.Oci.OciGlue:CreateConnection
>>(System.Data.OracleClient.OracleConnectionInfo)
>>in <0x0008e> 00 System.Data.OracleClient.OracleConnection:Open ()
>>in <0x00095> 00 .Test:Main (string[])
>>
>>My own connection code, in an ASP.NET page used by mod_mono/apache2 returns:
>>
>>System.MissingMethodException: A missing method exception has occurred.
>>in <0x00046> 06
>>System.Data.OracleClient.Oci.OciEnvironmentHandle:OCIEnvCreate
>>(intptr&,System.Data.OracleClient.Oci.OciEnvironmentMode,intptr,intptr,intptr,intptr,int,intptr)
>>in <0x00063> 00 System.Data.OracleClient.Oci.OciEnvironmentHandle:.ctor
>>(System.Data.OracleClient.Oci.OciEnvironmentMode)
>>in <0x0002c> 00 System.Data.OracleClient.Oci.OciGlue:CreateConnection
>>(System.Data.OracleClient.OracleConnectionInfo)
>>in <0x0008e> 00 System.Data.OracleClient.OracleConnection:Open ()
>>in <0x00080> 00 GSNB.GSNBDataAccess:.ctor ()
>>
>>The version of mono is 0.23 (debs).
>>
>>Any help will be appreciated!
>>
>>
>
>David,
>
>Since the Oracle provider *does* work for you with SQL#, and it seems in
>the first example that the error is occuring in
>OciServerHandle.Attach(), I think that there may be a problem with your
>connection string. If you could send me the details, perhaps I could
>check it out.
>
>In the second example, it almost seems that it can't find the Oracle
>client libraries that you have installed. Not knowing much about
>mod_mono, I can't really say why that may be, but you might want to
>check out the LD_LIBRARY_PATH or somesuch for the apache user.
>
>Cheers,
>
>
>
>
>
>