Fix problems with overlong directory names: phase #1
[mono.git] / mcs / class / Npgsql / Npgsql / NpgsqlDataAdapter.cs
old mode 100755 (executable)
new mode 100644 (file)
index d21e4b2..d41193e
@@ -1,25 +1,25 @@
 // created on 1/8/2002 at 23:02
-// 
+//
 // Npgsql.NpgsqlDataAdapter.cs
 //
 // Author:
-//     Francisco Jr. (fxjrlists@yahoo.com.br)
+//  Francisco Jr. (fxjrlists@yahoo.com.br)
 //
-//     Copyright (C) 2002 The Npgsql Development Team
-//     npgsql-general@gborg.postgresql.org
-//     http://gborg.postgresql.org/project/npgsql/projdisplay.php
+//  Copyright (C) 2002 The Npgsql Development Team
+//  npgsql-general@gborg.postgresql.org
+//  http://gborg.postgresql.org/project/npgsql/projdisplay.php
 //
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
 // version 2.1 of the License, or (at your option) any later version.
-// 
+//
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 // Lesser General Public License for more details.
-// 
+//
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
@@ -31,247 +31,246 @@ using System.Resources;
 
 namespace Npgsql
 {
-       public sealed class NpgsqlDataAdapter : DbDataAdapter, IDbDataAdapter
-       {
-               
-               private NpgsqlCommand   _selectCommand;
-               private NpgsqlCommand           _updateCommand;
-               private NpgsqlCommand           _deleteCommand;
-               private NpgsqlCommand           _insertCommand;
-
-               private NpgsqlCommandBuilder cmd_builder;
-               
-               // Log support
-               private static readonly String CLASSNAME = "NpgsqlDataAdapter";
-                       
-               public NpgsqlDataAdapter() {}
-               
-               public NpgsqlDataAdapter(NpgsqlCommand selectCommand)
-               {
+    /// <summary>
+    /// Represents the method that handles the <see cref="Npgsql.NpgsqlDataAdapter.RowUpdated">RowUpdated</see> events.
+    /// </summary>
+    /// <param name="sender">The source of the event.</param>
+    /// <param name="e">A <see cref="Npgsql.NpgsqlRowUpdatedEventArgs">NpgsqlRowUpdatedEventArgs</see> that contains the event data.</param>
+    public delegate void NpgsqlRowUpdatedEventHandler(Object sender, NpgsqlRowUpdatedEventArgs e);
+
+    /// <summary>
+    /// Represents the method that handles the <see cref="Npgsql.NpgsqlDataAdapter.RowUpdating">RowUpdating</see> events.
+    /// </summary>
+    /// <param name="sender">The source of the event.</param>
+    /// <param name="e">A <see cref="Npgsql.NpgsqlRowUpdatingEventArgs">NpgsqlRowUpdatingEventArgs</see> that contains the event data.</param>
+    public delegate void NpgsqlRowUpdatingEventHandler(Object sender, NpgsqlRowUpdatingEventArgs e);
+
+
+    /// <summary>
+    /// This class represents an adapter from many commands: select, update, insert and delete to fill <see cref="System.Data.DataSet">Datasets.</see>
+    /// </summary>
+    public sealed class NpgsqlDataAdapter : DbDataAdapter, IDbDataAdapter
+    {
+
+        private NpgsqlCommand       _selectCommand;
+        private NpgsqlCommand       _updateCommand;
+        private NpgsqlCommand       _deleteCommand;
+        private NpgsqlCommand       _insertCommand;
+
+        // Log support
+        private static readonly String CLASSNAME = "NpgsqlDataAdapter";
+
+
+        public event NpgsqlRowUpdatedEventHandler RowUpdated;
+        public event NpgsqlRowUpdatingEventHandler RowUpdating;
+
+        public NpgsqlDataAdapter()
+        {}
+
+        public NpgsqlDataAdapter(NpgsqlCommand selectCommand)
+        {
             NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, CLASSNAME);
             _selectCommand = selectCommand;
-                       cmd_builder = new NpgsqlCommandBuilder(this);
-               }
-               
-               public NpgsqlDataAdapter(String selectCommandText, NpgsqlConnection selectConnection) : this(new NpgsqlCommand(selectCommandText, selectConnection)){}
-               
-               public NpgsqlDataAdapter(String selectCommandText, String selectConnectionString) : this(selectCommandText, new NpgsqlConnection(selectConnectionString)){}
-               
-               
-               protected override RowUpdatedEventArgs CreateRowUpdatedEvent(
-                               DataRow dataRow,
-                               IDbCommand command,
-                               StatementType statementType,
-                               DataTableMapping tableMapping
-                               )
-               {
-                       NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "CreateRowUpdatedEvent");
-                       return new NpgsqlRowUpdatedEventArgs(dataRow, command, statementType, tableMapping);
-                       
-                       
-                       
-               }
-                                                                            
-               protected override RowUpdatingEventArgs CreateRowUpdatingEvent(
-                               DataRow dataRow,
-                               IDbCommand command,
-                               StatementType statementType,
-                               DataTableMapping tableMapping
-                               )
-               {
-                       NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "CreateRowUpdatingEvent");
-                       return new NpgsqlRowUpdatingEventArgs(dataRow, command, statementType, tableMapping);
-               }
-                                                                          
-               protected override void OnRowUpdated(
-                               RowUpdatedEventArgs value
-                               )
-               {
+        }
+
+        public NpgsqlDataAdapter(String selectCommandText, NpgsqlConnection selectConnection) : this(new NpgsqlCommand(selectCommandText, selectConnection))
+        {}
+
+        public NpgsqlDataAdapter(String selectCommandText, String selectConnectionString) : this(selectCommandText, new NpgsqlConnection(selectConnectionString))
+        {}
+
+
+        protected override RowUpdatedEventArgs CreateRowUpdatedEvent(
+            DataRow dataRow,
+            IDbCommand command,
+            StatementType statementType,
+            DataTableMapping tableMapping
+        )
+        {
+            NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "CreateRowUpdatedEvent");
+            return new NpgsqlRowUpdatedEventArgs(dataRow, command, statementType, tableMapping);
+
+
+
+        }
+
+        protected override RowUpdatingEventArgs CreateRowUpdatingEvent(
+            DataRow dataRow,
+            IDbCommand command,
+            StatementType statementType,
+            DataTableMapping tableMapping
+        )
+        {
+            NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "CreateRowUpdatingEvent");
+            return new NpgsqlRowUpdatingEventArgs(dataRow, command, statementType, tableMapping);
+        }
+
+        protected override void OnRowUpdated(
+            RowUpdatedEventArgs value
+        )
+        {
             NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "OnRowUpdated");
-                       //base.OnRowUpdated(value);
-                       
-               }
-               
-               protected override void OnRowUpdating(
-                               RowUpdatingEventArgs value
-                               )
-               {
+            //base.OnRowUpdated(value);
+            if ((RowUpdated != null) && (value is NpgsqlRowUpdatedEventArgs))
+                RowUpdated(this, (NpgsqlRowUpdatedEventArgs) value);
+
+        }
+
+        protected override void OnRowUpdating(
+            RowUpdatingEventArgs value
+        )
+        {
             NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "OnRowUpdating");
-                       switch (value.StatementType) {
-                               case StatementType.Insert:
-                                       value.Command = _insertCommand = cmd_builder.GetInsertCommand(value.Row);
-                                       break;
-                               case StatementType.Update:
-                                       value.Command = _updateCommand = cmd_builder.GetUpdateCommand(value.Row);
-                                       break;
-                               case StatementType.Delete:
-                                       value.Command = _deleteCommand = cmd_builder.GetDeleteCommand(value.Row);
-                                       break;
-                       }
-                       DataColumnMappingCollection columnMappings = value.TableMapping.ColumnMappings;
-                       foreach (IDataParameter parameter in value.Command.Parameters) {
-                               
-                               string dsColumnName = parameter.SourceColumn;
-                               DataColumnMapping mapping = columnMappings [parameter.SourceColumn];
-                               if (mapping != null) dsColumnName = mapping.DataSetColumn;
-                               DataRowVersion rowVersion = DataRowVersion.Default;
-                               if (value.StatementType == StatementType.Update) rowVersion = parameter.SourceVersion;
-                               if (value.StatementType == StatementType.Delete) rowVersion = DataRowVersion.Original;
-                               parameter.Value = value.Row [dsColumnName, rowVersion];
-                       }
-                       value.Row.AcceptChanges ();
-               }
-               
-               ITableMappingCollection IDataAdapter.TableMappings
-               {
-                       get
-                       {
-                               return TableMappings;
-                       }
-               }
-               
-               IDbCommand IDbDataAdapter.DeleteCommand
-               {
-                       get
-                       {
+            if ((RowUpdating != null) && (value is NpgsqlRowUpdatingEventArgs))
+                RowUpdating(this, (NpgsqlRowUpdatingEventArgs) value);
+        }
+
+        ITableMappingCollection IDataAdapter.TableMappings
+        {
+            get
+            {
+                return TableMappings;
+            }
+        }
+
+        IDbCommand IDbDataAdapter.DeleteCommand
+        {
+            get
+            {
                 NpgsqlEventLog.LogPropertyGet(LogLevel.Debug, CLASSNAME, "IDbDataAdapter.DeleteCommand");
-                               return (NpgsqlCommand) DeleteCommand;
-                       }
-                       
-                       set
-                       {
-                               DeleteCommand = (NpgsqlCommand) value;
-                       }
-               }
-               
-               
-               public NpgsqlCommand DeleteCommand
-               {
-                       get
-                       {
-                               return _deleteCommand;
-                       }
-                       
-                       set
-                       {
-                               _deleteCommand = value;
-                       }
-               }
-                
-               IDbCommand IDbDataAdapter.SelectCommand
-               {
-                       get
-                       {
-                               return (NpgsqlCommand) SelectCommand;
-                       }
-                       
-                       set
-                       {
-                               SelectCommand = (NpgsqlCommand) value;
-                       }
-               }
-               
-               
-               public NpgsqlCommand SelectCommand
-               {
-                       get
-                       {
-                               return _selectCommand;
-                       }
-                       
-                       set
-                       {
-                               _selectCommand = value;
-                       }
-               }
-                
-               IDbCommand IDbDataAdapter.UpdateCommand
-               {
-                       get
-                       {
-                               NpgsqlEventLog.LogPropertyGet(LogLevel.Debug, CLASSNAME, "IDbDataAdapter.UpdateCommand");
-                               return (NpgsqlCommand) UpdateCommand;
-                       }
-                       
-                       set
-                       {
-                               UpdateCommand = (NpgsqlCommand) value;
-                       }
-               }
-               
-               
-               public NpgsqlCommand UpdateCommand
-               {
-                       get
-                       {
-                               return _updateCommand;
-                       }
-                       
-                       set
-                       {
-                               _updateCommand = value;
-                       }
-               }
-                
-               IDbCommand IDbDataAdapter.InsertCommand
-               {
-                       get
-                       {
-                               return (NpgsqlCommand) InsertCommand;
-                       }
-                       
-                       set
-                       {
-                               InsertCommand = (NpgsqlCommand) value;
-                       }
-               }
-               
-               
-               public NpgsqlCommand InsertCommand
-               {
-                       get
-                       {
-                               NpgsqlEventLog.LogPropertyGet(LogLevel.Debug, CLASSNAME, "InsertCommand");
-                               return _insertCommand;
-                       }
-                       
-                       set
-                       {
-                               _insertCommand = value;
-                       }
-               }
-                
-               
-       }
+                return (NpgsqlCommand) DeleteCommand;
+            }
+
+            set
+            {
+                DeleteCommand = (NpgsqlCommand) value;
+            }
+        }
+
+
+        public NpgsqlCommand DeleteCommand
+        {
+            get
+            {
+                return _deleteCommand;
+            }
+
+            set
+            {
+                _deleteCommand = value;
+            }
+        }
+
+        IDbCommand IDbDataAdapter.SelectCommand
+        {
+            get
+            {
+                return (NpgsqlCommand) SelectCommand;
+            }
+
+            set
+            {
+                SelectCommand = (NpgsqlCommand) value;
+            }
+        }
+
+
+        public NpgsqlCommand SelectCommand
+        {
+            get
+            {
+                return _selectCommand;
+            }
+
+            set
+            {
+                _selectCommand = value;
+            }
+        }
+
+        IDbCommand IDbDataAdapter.UpdateCommand
+        {
+            get
+            {
+                NpgsqlEventLog.LogPropertyGet(LogLevel.Debug, CLASSNAME, "IDbDataAdapter.UpdateCommand");
+                return (NpgsqlCommand) UpdateCommand;
+            }
+
+            set
+            {
+                UpdateCommand = (NpgsqlCommand) value;
+            }
+        }
+
+
+        public NpgsqlCommand UpdateCommand
+        {
+            get
+            {
+                return _updateCommand;
+            }
+
+            set
+            {
+                _updateCommand = value;
+            }
+        }
+
+        IDbCommand IDbDataAdapter.InsertCommand
+        {
+            get
+            {
+                return (NpgsqlCommand) InsertCommand;
+            }
+
+            set
+            {
+                InsertCommand = (NpgsqlCommand) value;
+            }
+        }
+
+
+        public NpgsqlCommand InsertCommand
+        {
+            get
+            {
+                NpgsqlEventLog.LogPropertyGet(LogLevel.Debug, CLASSNAME, "InsertCommand");
+                return _insertCommand;
+            }
+
+            set
+            {
+                _insertCommand = value;
+            }
+        }
+
+
+    }
 }
 
 
 public class NpgsqlRowUpdatingEventArgs : RowUpdatingEventArgs
 {
-       public NpgsqlRowUpdatingEventArgs (
-                               DataRow dataRow,
-                               IDbCommand command,
-                               StatementType statementType,
-                               DataTableMapping tableMapping
-                               ) : base(dataRow, command, statementType, tableMapping)
-                               
-       {
-               
-       } 
-       
+    public NpgsqlRowUpdatingEventArgs (
+        DataRow dataRow,
+        IDbCommand command,
+        StatementType statementType,
+        DataTableMapping tableMapping
+    ) : base(dataRow, command, statementType, tableMapping)
+
+    {}
+
 }
 
 public class NpgsqlRowUpdatedEventArgs : RowUpdatedEventArgs
 {
-       public NpgsqlRowUpdatedEventArgs (
-                               DataRow dataRow,
-                               IDbCommand command,
-                               StatementType statementType,
-                               DataTableMapping tableMapping
-                               ) : base(dataRow, command, statementType, tableMapping)
-                               
-       {
-               
-       } 
-       
+    public NpgsqlRowUpdatedEventArgs (
+        DataRow dataRow,
+        IDbCommand command,
+        StatementType statementType,
+        DataTableMapping tableMapping
+    ) : base(dataRow, command, statementType, tableMapping)
+
+    {}
+
 }