Please do not reply to this email- if you want to comment on the bug, go to the URL shown below and enter your comments there.
Changed by [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=81306 --- shadow/81306 2007-04-04 01:07:27.000000000 -0400 +++ shadow/81306.tmp.30087 2007-04-05 01:39:30.000000000 -0400 @@ -196,6 +196,57 @@ unixodbc-2.1.1 or unixODBC-2.2.13pre mono-1.2.3.1_0.sunos8.novell.sparc.pkg ------- Additional Comments From [EMAIL PROTECTED] 2007-04-04 01:07 ------- It rather looks like Odbc, unixodbc or Informix issue that passes wrong arguments to Encoding. + +------- Additional Comments From [EMAIL PROTECTED] 2007-04-05 01:39 ------- +Found the cause: The unixODBC layer or Informix ODBC driver is +returning the wrong length in outsize. I've worked around the issue +with the following patch (sorry, not std diff format as I'm not used +to those tools). + +OdbcDataReader.cs: + private string GetColumnAttributeStr (int column, +FieldIdentifier fieldId) + { + OdbcReturn ret = OdbcReturn.Error; + byte [] buffer = new byte [255]; + int outsize = 0; + int val = 0; + ret = libodbc.SQLColAttribute (hstmt, column, +fieldId, + buffer, +buffer.Length, + ref outsize, +ref val); + if (ret != OdbcReturn.Success && ret != +OdbcReturn.SuccessWithInfo) + throw new OdbcException (new OdbcError +("SQLColAttribute", + + OdbcHandleType.Stmt, + + hstmt) + ); +/*NEW.sn*/ + /* outsize may be garbage - auto calc the size */ + outsize = 0; + /* look for first null */ + while(outsize < buffer.Length && +buffer[outsize] != 0) + outsize++; + /* strip trailing spaces (if any) */ + while(outsize > 0 && buffer[outsize-1] == ' ') + outsize--; +/*NEW.en*/ + string value = ""; + if (outsize > 0) + value = Encoding.Default.GetString +(buffer, 0, outsize); + return value; + } + +So in short, it doesn't appear to be a Mono bug at this time, but +maybe the above patch might prove useful to anyone suffering this +problem until the maintainers of unixODBC (or Informix ODBC) can fix this. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
