Author: varadhan
Date: 2008-02-20 06:02:56 -0500 (Wed, 20 Feb 2008)
New Revision: 96233
Modified:
trunk/mcs/class/System.Data/System.Data.Odbc/ChangeLog
trunk/mcs/class/System.Data/System.Data.Odbc/OdbcDataReader.cs
Log:
Modified: trunk/mcs/class/System.Data/System.Data.Odbc/ChangeLog
===================================================================
--- trunk/mcs/class/System.Data/System.Data.Odbc/ChangeLog 2008-02-20
10:45:51 UTC (rev 96232)
+++ trunk/mcs/class/System.Data/System.Data.Odbc/ChangeLog 2008-02-20
11:02:56 UTC (rev 96233)
@@ -1,3 +1,9 @@
+2008-02-20 Veerapuram Varadhan <[EMAIL PROTECTED]>
+
+ * OdbcDataReader.cs: (GetValue): Handle cases when certain
+ ODBC drivers return unexpected results. Fixes #326740. Patch
+ provided by Mark Junker <[EMAIL PROTECTED]>.
+
2008-01-16 Veerapuram Varadhan <[EMAIL PROTECTED]>
* OdbcCommandBuilder.cs: Implemented 2.0 APIs and code
Modified: trunk/mcs/class/System.Data/System.Data.Odbc/OdbcDataReader.cs
===================================================================
--- trunk/mcs/class/System.Data/System.Data.Odbc/OdbcDataReader.cs
2008-02-20 10:45:51 UTC (rev 96232)
+++ trunk/mcs/class/System.Data/System.Data.Odbc/OdbcDataReader.cs
2008-02-20 11:02:56 UTC (rev 96233)
@@ -682,7 +682,10 @@
ret = libodbc.SQLGetData
(hstmt, ColIndex, col.SqlCType, buffer, bufsize, ref outsize);
if (ret == OdbcReturn.Error)
break;
- if (ret != OdbcReturn.NoData &&
outsize!=-1) {
+ // Fix for strance ODBC drivers
(like psqlODBC)
+ if (ret == OdbcReturn.Success
&& outsize==-1)
+ ret = OdbcReturn.NoData;
+ if (ret != OdbcReturn.NoData &&
outsize > 0) {
if (outsize < bufsize)
sb.Append
(System.Text.Encoding.Unicode.GetString(buffer,0,outsize));
else
@@ -700,7 +703,10 @@
ret = libodbc.SQLGetData
(hstmt, ColIndex, col.SqlCType, buffer, bufsize, ref outsize);
if (ret == OdbcReturn.Error)
break;
- if (ret != OdbcReturn.NoData &&
outsize!=-1) {
+ // Fix for strance ODBC drivers
(like psqlODBC)
+ if (ret == OdbcReturn.Success
&& outsize==-1)
+ ret = OdbcReturn.NoData;
+ if (ret != OdbcReturn.NoData &&
outsize > 0) {
if (outsize < bufsize)
sb1.Append
(System.Text.Encoding.Default.GetString(buffer,0,outsize));
else
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches