[Mono-bugs] [Bug 524254] New: OracleClient causes exception when unsigned types or bools are used in an OracleParameter
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Wed Jul 22 09:25:09 EDT 2009
http://bugzilla.novell.com/show_bug.cgi?id=524254
Summary: OracleClient causes exception when unsigned types or
bools are used in an OracleParameter
Classification: Mono
Product: Mono: Class Libraries
Version: unspecified
Platform: 32bit
OS/Version: openSUSE 11.0
Status: NEW
Severity: Normal
Priority: P5 - None
Component: Sys.Data
AssignedTo: bnc-blr-team-mono at forge.provo.novell.com
ReportedBy: rwkay2005 at gmail.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Created an attachment (id=306888)
--> (http://bugzilla.novell.com/attachment.cgi?id=306888)
Patch to fix the problem
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US)
AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.37 Safari/530.5
When a CLR Type of UInt16, UInt32, UInt64 or Boolean is used in an
OracleParameter, an exception will happen.
I have fixed the issue and attach a diff
Reproducible: Always
Steps to Reproduce:
1. Add test code below to OracleParameterTest.cs in
mcs/class/System.Data.OracleClient/OracleParameterTest.cs
2. Compile and Run the test code
3. Watch it fail the tests
[Test]
public void TestInferOracleType ()
{
OracleParameter id = new OracleParameter ();
id.Value = (sbyte)1;
Assert.AreEqual ( OracleType.SByte, id.OracleType );
id.Value = (short)1;
Assert.AreEqual ( OracleType.Int16, id.OracleType );
id.Value = (int)1;
Assert.AreEqual ( OracleType.Int32, id.OracleType );
id.Value = (long)1;
Assert.AreEqual ( OracleType.Number, id.OracleType );
id.Value = (byte)1;
Assert.AreEqual ( OracleType.Byte, id.OracleType );
id.Value = (ushort)1;
Assert.AreEqual ( OracleType.UInt16, id.OracleType );
id.Value = (uint)1;
Assert.AreEqual ( OracleType.UInt32, id.OracleType );
id.Value = (ulong)1;
Assert.AreEqual ( OracleType.Number, id.OracleType );
id.Value = true;
Assert.AreEqual ( OracleType.Byte, id.OracleType );
id.Value = "Hello World";
Assert.AreEqual ( OracleType.VarChar, id.OracleType);
id.Value = DateTime.Now;
Assert.AreEqual ( OracleType.DateTime, id.OracleType );
id.Value = (decimal)1;
Assert.AreEqual ( OracleType.Number, id.OracleType );
id.Value = new byte[] {1, 2, 3 };
Assert.AreEqual ( OracleType.Raw, id.OracleType);
id.Value = Guid.NewGuid();
Assert.AreEqual ( OracleType.Raw, id.OracleType );
id.Value = (float)1;
Assert.AreEqual ( OracleType.Float, id.OracleType );
id.Value = '1';
Assert.AreEqual ( OracleType.Char, id.OracleType );
} // end TestInferOracleType
Actual Results:
Tests fail
Expected Results:
Tests pass
--
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the mono-bugs
mailing list