diff options
author | Sureshkumar T <suresh@mono-cvs.ximian.com> | 2005-06-28 15:50:14 +0400 |
---|---|---|
committer | Sureshkumar T <suresh@mono-cvs.ximian.com> | 2005-06-28 15:50:14 +0400 |
commit | 0594791a4983e4ced738738093e5b3a145be2423 (patch) | |
tree | 4ca89ce4a6541904e094190c4df144a1d5d70df8 /mcs/class/System.Data/System.Data.Odbc | |
parent | bfa8cbbae2a1997f6275d7cfc93c5591bfe7fa49 (diff) |
2005-06-28 Sureshkumar T <tsureshkumar@novell.com>
* OdbcDataReader.cs: GetPrimaryKeys (): use the length indicator
for GetString, otherwise, it creates a string of length 255. Use
ArrayList for keys as the columns are different from the selected
columns. fixes bug #75263.
svn path=/trunk/mcs/; revision=46641
Diffstat (limited to 'mcs/class/System.Data/System.Data.Odbc')
-rw-r--r-- | mcs/class/System.Data/System.Data.Odbc/ChangeLog | 7 | ||||
-rw-r--r-- | mcs/class/System.Data/System.Data.Odbc/OdbcDataReader.cs | 9 |
2 files changed, 11 insertions, 5 deletions
diff --git a/mcs/class/System.Data/System.Data.Odbc/ChangeLog b/mcs/class/System.Data/System.Data.Odbc/ChangeLog index b46121bcc40..18784690dbe 100644 --- a/mcs/class/System.Data/System.Data.Odbc/ChangeLog +++ b/mcs/class/System.Data/System.Data.Odbc/ChangeLog @@ -1,3 +1,10 @@ +2005-06-28 Sureshkumar T <tsureshkumar@novell.com> + + * OdbcDataReader.cs: GetPrimaryKeys (): use the length indicator + for GetString, otherwise, it creates a string of length 255. Use + ArrayList for keys as the columns are different from the selected + columns. fixes bug #75263. + 2005-06-09 Sureshkumar T <tsureshkumar@novell.com> * OdbcDataReader.cs: GetValue (): return decimal in case of odbc diff --git a/mcs/class/System.Data/System.Data.Odbc/OdbcDataReader.cs b/mcs/class/System.Data/System.Data.Odbc/OdbcDataReader.cs index 991b7124ece..f088a0969de 100644 --- a/mcs/class/System.Data/System.Data.Odbc/OdbcDataReader.cs +++ b/mcs/class/System.Data/System.Data.Odbc/OdbcDataReader.cs @@ -888,7 +888,7 @@ namespace System.Data.Odbc if (cols.Length <= 0) return new string [0]; - string [] keys = new string [cols.Length]; + ArrayList keys = new ArrayList (); IntPtr handle = IntPtr.Zero; OdbcReturn ret = OdbcReturn.Error; try { @@ -920,8 +920,8 @@ namespace System.Data.Odbc ret = libodbc.SQLFetch (handle); if (ret != OdbcReturn.Success && ret != OdbcReturn.SuccessWithInfo) break; - string pkey = Encoding.Default.GetString (primaryKey); - keys [i++] = pkey; + string pkey = Encoding.Default.GetString (primaryKey, 0, length); + keys.Add (pkey); } } catch (OdbcException){ // FIXME: Try using SQLStatistics @@ -937,8 +937,7 @@ namespace System.Data.Odbc } } - - return keys; + return (string []) keys.ToArray (typeof (string)); } public |