I really need the new TimeStamp type (supported starting from oracle 9). It's 
a MS.NET supported type (i've made tests)...
I've begin to do a little patch (attached) to add the timestamp type to 
oracle.client...
but... I've a strange error when i try to do a Fill, it failed with:

Unhandled Exception: System.Data.OracleClient.OracleException:
in <0x0013d> System.Data.OracleClient.Oci.OciStatementHandle:Fetch ()
in <0x0002c> System.Data.OracleClient.OracleDataReader:Read ()
in <0x002f4> System.Data.Common.DbDataAdapter:FillTable (System.Data.DataTable 
dataTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords, 
System.Int32 counter)
in <0x0011f> System.Data.Common.DbDataAdapter:Fill (System.Data.DataSet 
dataSet, System.String srcTable, IDataReader dataReader, Int32 startRecord, 
Int32 maxRecords)
in <0x000d5> System.Data.Common.DbDataAdapter:Fill (System.Data.DataSet 
dataSet, Int32 startRecord, Int32 maxRecords, System.String srcTable, 
IDbCommand command, CommandBehavior behavior)
in <0x00044> System.Data.Common.DbDataAdapter:Fill (System.Data.DataSet 
dataSet)
in <0x007b8> ConsoleIntranet.Class1:TestTimestamp ()
in <0x00015> ConsoleIntranet.Class1:Main (System.String[] args)

Could someone help me how to resolve this issue?
thanks
_______________________________________________
Ce message et les éventuels documents joints peuvent contenir des informations 
confidentielles.
Au cas où il ne vous serait pas destiné, nous vous remercions de bien vouloir 
le supprimer et en aviser immédiatement l'expéditeur. Toute utilisation de ce 
message non conforme à sa destination, toute diffusion ou publication, totale 
ou partielle et quel qu'en soit le moyen est formellement interdite.
Les communications sur internet n'étant pas sécurisées, l'intégrité de ce 
message n'est pas assurée et la société émettrice ne peut être tenue pour 
responsable de son contenu.
Index: mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleParameter.cs
===================================================================
--- mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleParameter.cs      (revision 47807)
+++ mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleParameter.cs      (working copy)
@@ -258,7 +258,7 @@
                        OciDataType bindType = ociType;
                        IntPtr bindValue = IntPtr.Zero;
                        int rsize = 0;
-
+                       Console.WriteLine("Parametre : "+ociType.ToString());
                        // TODO: handle InputOutput and Return parameters
                        if (direction == ParameterDirection.Output) {
                                // TODO: need to figure out how OracleParameter
@@ -324,9 +324,11 @@
                                bindSize = 0;
                        }
                        else {
+                               Console.WriteLine("OracleType "+oracleType.ToString());
                                // TODO: do other data types and oracle data types
                                // should I be using IConvertible to convert?
                                if (oracleType == OracleType.DateTime) {
+                                       Console.WriteLine("DATE!!!");
                                        string oraDateFormat = connection.GetSessionDateFormat ();
                                        string sysDateFormat = OracleDateTime.ConvertOracleDateFormatToSystemDateTime (oraDateFormat);

@@ -637,8 +639,11 @@
                                dbType = DbType.AnsiStringFixedLength;
                                ociType = OciDataType.Char;
                                break;
+                       case OracleType.Timestamp:
+                               dbType = DbType.DateTime;
+                               ociType = OciDataType.TimeStamp;
+                               break;
                        case OracleType.DateTime:
-                       case OracleType.Timestamp:
                        case OracleType.TimestampLocal:
                        case OracleType.TimestampWithTZ:
                                dbType = DbType.DateTime;
Index: mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciDataType.cs
===================================================================
--- mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciDataType.cs      (revision 47807)
+++ mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciDataType.cs      (working copy)
@@ -43,6 +43,7 @@
                Blob = 0x71,
                BFile = 0x72,
                OciString = 0x9b,
-               OciDate = 0x9c
+               OciDate = 0x9c,
+               TimeStamp = 0xbb
        }
 }
Index: mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciParameterDescriptor.cs
===================================================================
--- mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciParameterDescriptor.cs   (revision 47807)
+++ mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciParameterDescriptor.cs   (working copy)
@@ -67,6 +67,7 @@

                public static OracleType OciDataTypeToOracleType (OciDataType ociType)
                {
+                       Console.WriteLine(ociType.ToString());
                        switch (ociType) {
                        case OciDataType.VarChar2:
                                return OracleType.VarChar;
@@ -120,6 +121,8 @@
                                return OracleType.VarChar;
                        case OciDataType.OciDate:
                                return OracleType.DateTime;
+                       case OciDataType.TimeStamp:
+                               return OracleType.Timestamp;
                        default:
                                throw new NotImplementedException ();
                        }
@@ -180,6 +183,8 @@
                                return typeof (System.String);
                        case "OciDate":
                                return typeof (System.DateTime);
+                       case "TimeStamp":
+                               return typeof (System.DateTime);
                        default:
                                // FIXME: are these types correct?
                                return typeof(System.String);
@@ -242,6 +247,8 @@
                                        return "OciString";
                                case OciDataType.OciDate:
                                        return "OciDate";
+                               case OciDataType.TimeStamp:
+                                       return "TimeStamp";
                                default:
                                        return "Unknown";
                        }
Index: mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciStatementHandle.cs
===================================================================
--- mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciStatementHandle.cs       (revision 47807)
+++ mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciStatementHandle.cs       (working copy)
@@ -212,8 +212,9 @@
                                1,
                                2,
                                0);
-
+               Console.WriteLine("FETCH "+status.ToString());
                        switch (status) {
+
                        case OciGlue.OCI_NO_DATA:
                                moreResults = false;
                                break;
_______________________________________________
Mono-devel-list mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to