From 6a793a7e4c33941820dda4b7e4be09a07e6ae2f5 Mon Sep 17 00:00:00 2001 From: Rodrigo Moya Date: Fri, 16 Aug 2002 01:35:51 +0000 Subject: [PATCH] 2002-08-15 Rodrigo Moya * System.Data.OleDb/OleDbCommand.cs (ExecuteReader): check values for NULL before passing them to Marshal.PtrToStructure, which issues an exception if the value is NULL. svn path=/trunk/mcs/; revision=6660 --- mcs/class/System.Data/ChangeLog | 6 ++++++ .../System.Data.OleDb/OleDbCommand.cs | 3 +++ .../OleDbParameterCollection.cs | 20 +++++++++++++++---- .../System.Data/System.Data.OleDb/libgda.cs | 5 ++++- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/mcs/class/System.Data/ChangeLog b/mcs/class/System.Data/ChangeLog index b99a3ad1b30..c8e859e6013 100644 --- a/mcs/class/System.Data/ChangeLog +++ b/mcs/class/System.Data/ChangeLog @@ -1,3 +1,9 @@ +2002-08-15 Rodrigo Moya + + * System.Data.OleDb/OleDbCommand.cs (ExecuteReader): check values + for NULL before passing them to Marshal.PtrToStructure, which issues + an exception if the value is NULL. + 2002-08-15 Rodrigo Moya * System.Data/UniqueConstraint.cs (UniqueConstraint): commented diff --git a/mcs/class/System.Data/System.Data.OleDb/OleDbCommand.cs b/mcs/class/System.Data/System.Data.OleDb/OleDbCommand.cs index d5d304dd80a..dffde2cf33a 100644 --- a/mcs/class/System.Data/System.Data.OleDb/OleDbCommand.cs +++ b/mcs/class/System.Data/System.Data.OleDb/OleDbCommand.cs @@ -279,6 +279,9 @@ namespace System.Data.OleDb while (glist_node != null) { results.Add (glist_node.data); + if (glist_node.next == IntPtr.Zero) + break; + glist_node = (GdaList) Marshal.PtrToStructure (glist_node.next, typeof (GdaList)); } diff --git a/mcs/class/System.Data/System.Data.OleDb/OleDbParameterCollection.cs b/mcs/class/System.Data/System.Data.OleDb/OleDbParameterCollection.cs index 5d566d83011..8d09e465c16 100644 --- a/mcs/class/System.Data/System.Data.OleDb/OleDbParameterCollection.cs +++ b/mcs/class/System.Data/System.Data.OleDb/OleDbParameterCollection.cs @@ -67,16 +67,28 @@ namespace System.Data.OleDb set { list[index] = value; } } - object IDataParameterCollection.this[string name] { + object IDataParameterCollection.this[string name] + { [MonoTODO] - get { throw new NotImplementedException (); } + get { + throw new NotImplementedException (); + } [MonoTODO] - set { throw new NotImplementedException (); } + set { + throw new NotImplementedException (); + } } internal IntPtr GdaParameterList { [MonoTODO] - get { throw new NotImplementedException (); } + get { + IntPtr param_list; + + param_list = libgda.gda_parameter_list_new (); + // FIXME: add parameters to list + + return param_list; + } } #endregion // Properties diff --git a/mcs/class/System.Data/System.Data.OleDb/libgda.cs b/mcs/class/System.Data/System.Data.OleDb/libgda.cs index 17a1f163611..8a9dc3dd70b 100644 --- a/mcs/class/System.Data/System.Data.OleDb/libgda.cs +++ b/mcs/class/System.Data/System.Data.OleDb/libgda.cs @@ -81,7 +81,10 @@ namespace System.Data.OleDb [DllImport("gda-2")] public static extern bool gda_value_get_boolean (IntPtr value); - + + [DllImport("gda-2")] + public static extern IntPtr gda_parameter_list_new (); + [DllImport("gda-2")] public static extern int gda_data_model_get_n_rows (IntPtr model); -- 2.25.1