Author: anagappan
Date: 2007-05-25 05:14:01 -0400 (Fri, 25 May 2007)
New Revision: 77937

Modified:
   trunk/mcs/class/System.Data/System.Data.Odbc/ChangeLog
   trunk/mcs/class/System.Data/System.Data.Odbc/OdbcDataReader.cs
Log:
2007-05-25  Nagappan A  <[EMAIL PROTECTED]>

        * OdbcDataReader.cs (GetValue): Sybase returns the fraction values
        in nano seconds, but DateTime expects the value in milliseconds,
        so the conversion.



Modified: trunk/mcs/class/System.Data/System.Data.Odbc/ChangeLog
===================================================================
--- trunk/mcs/class/System.Data/System.Data.Odbc/ChangeLog      2007-05-25 
07:16:51 UTC (rev 77936)
+++ trunk/mcs/class/System.Data/System.Data.Odbc/ChangeLog      2007-05-25 
09:14:01 UTC (rev 77937)
@@ -1,3 +1,9 @@
+2007-05-25  Nagappan A  <[EMAIL PROTECTED]>
+
+       * OdbcDataReader.cs (GetValue): Sybase returns the fraction values
+       in nano seconds, but DateTime expects the value in milliseconds,
+       so the conversion.
+
 2007-05-04  Nagappan A  <[EMAIL PROTECTED]>
 
        * libodbc.cs: Wrong ODBC API definitions (using ints instead of

Modified: trunk/mcs/class/System.Data/System.Data.Odbc/OdbcDataReader.cs
===================================================================
--- trunk/mcs/class/System.Data/System.Data.Odbc/OdbcDataReader.cs      
2007-05-25 07:16:51 UTC (rev 77936)
+++ trunk/mcs/class/System.Data/System.Data.Odbc/OdbcDataReader.cs      
2007-05-25 09:14:01 UTC (rev 77937)
@@ -726,9 +726,14 @@
                                case OdbcType.Time:
                                        OdbcTimestamp ts_data = new 
OdbcTimestamp();
                                        ret = libodbc.SQLGetData (hstmt, 
ColIndex, col.SqlCType, ref ts_data, 0, ref outsize);
-                                       if (outsize!=-1) // This means 
SQL_NULL_DATA 
+                                       if (outsize!=-1) {// This means 
SQL_NULL_DATA
+                                               /* Sybase returns the fraction 
values in nano seconds,
+                                                  but DateTime expects the 
value in milliseconds,
+                                                  so the conversion. */
+                                               int fraction = Convert.ToInt32 
(ts_data.fraction > 999 ? ts_data.fraction / 1000000 : ts_data.fraction);
                                                DataValue = new 
DateTime(ts_data.year,ts_data.month,ts_data.day,ts_data.hour,
-                                                                      
ts_data.minute,ts_data.second,Convert.ToInt32(ts_data.fraction));
+                                                                      
ts_data.minute,ts_data.second, fraction);
+                                       }
                                        break;
                                case OdbcType.VarBinary :
                                case OdbcType.Image :

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to