X Tutup
// created on 1/8/2002 at 23:02 // // Npgsql.NpgsqlDataAdapter.cs // // Author: // 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 // // // Permission to use, copy, modify, and distribute this software and its // documentation for any purpose, without fee, and without a written // agreement is hereby granted, provided that the above copyright notice // and this paragraph and the following two paragraphs appear in all copies. // // IN NO EVENT SHALL THE NPGSQL DEVELOPMENT TEAM BE LIABLE TO ANY PARTY // FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, // INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS // DOCUMENTATION, EVEN IF THE NPGSQL DEVELOPMENT TEAM HAS BEEN ADVISED OF // THE POSSIBILITY OF SUCH DAMAGE. // // THE NPGSQL DEVELOPMENT TEAM SPECIFICALLY DISCLAIMS ANY WARRANTIES, // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY // AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS // ON AN "AS IS" BASIS, AND THE NPGSQL DEVELOPMENT TEAM HAS NO OBLIGATIONS // TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. using System; using System.Data; using System.Data.Common; using System.Reflection; namespace Npgsql { /// /// Represents the method that handles the RowUpdated events. /// /// The source of the event. /// A NpgsqlRowUpdatedEventArgs that contains the event data. public delegate void NpgsqlRowUpdatedEventHandler(Object sender, NpgsqlRowUpdatedEventArgs e); /// /// Represents the method that handles the RowUpdating events. /// /// The source of the event. /// A NpgsqlRowUpdatingEventArgs that contains the event data. public delegate void NpgsqlRowUpdatingEventHandler(Object sender, NpgsqlRowUpdatingEventArgs e); /// /// This class represents an adapter from many commands: select, update, insert and delete to fill Datasets. /// public sealed class NpgsqlDataAdapter : DbDataAdapter { // Log support private static readonly String CLASSNAME = MethodBase.GetCurrentMethod().DeclaringType.Name; public event NpgsqlRowUpdatedEventHandler RowUpdated; public event NpgsqlRowUpdatingEventHandler RowUpdating; public NpgsqlDataAdapter() { } public NpgsqlDataAdapter(NpgsqlCommand selectCommand) { NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, CLASSNAME); SelectCommand = selectCommand; } 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); if ((RowUpdated != null) && (value is NpgsqlRowUpdatedEventArgs)) { RowUpdated(this, (NpgsqlRowUpdatedEventArgs) value); } } protected override void OnRowUpdating(RowUpdatingEventArgs value) { NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "OnRowUpdating"); if ((RowUpdating != null) && (value is NpgsqlRowUpdatingEventArgs)) { RowUpdating(this, (NpgsqlRowUpdatingEventArgs) value); } } public new NpgsqlCommand DeleteCommand { get { NpgsqlEventLog.LogPropertyGet(LogLevel.Debug, CLASSNAME, "NpgDataAdapter.DeleteCommand"); return (NpgsqlCommand)base.DeleteCommand; } set { base.DeleteCommand = value; } } public new NpgsqlCommand SelectCommand { get { NpgsqlEventLog.LogPropertyGet(LogLevel.Debug, CLASSNAME, "NpgDataAdapter.SelectCommand"); return (NpgsqlCommand)base.SelectCommand; } set { base.SelectCommand = value; } } public new NpgsqlCommand UpdateCommand { get { NpgsqlEventLog.LogPropertyGet(LogLevel.Debug, CLASSNAME, "NpgDataAdapter.UpdateCommand"); return (NpgsqlCommand)base.UpdateCommand; } set { base.UpdateCommand = value; } } public new NpgsqlCommand InsertCommand { get { NpgsqlEventLog.LogPropertyGet(LogLevel.Debug, CLASSNAME, "NpgDataAdapter.InsertCommand"); return (NpgsqlCommand)base.InsertCommand; } set { base.InsertCommand = value; } } } } public class NpgsqlRowUpdatingEventArgs : RowUpdatingEventArgs { 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) { } }
X Tutup