2 // Mono.Data.SybaseClient.SybaseDataAdapter.cs
5 // Tim Coleman (tim@timcoleman.com)
7 // Copyright (C) Tim Coleman, 2002
11 using System.ComponentModel;
13 using System.Data.Common;
15 namespace Mono.Data.SybaseClient {
16 public sealed class SybaseDataAdapter : DbDataAdapter, IDbDataAdapter
20 SybaseCommand deleteCommand;
21 SybaseCommand insertCommand;
22 SybaseCommand selectCommand;
23 SybaseCommand updateCommand;
25 static readonly object EventRowUpdated = new object();
26 static readonly object EventRowUpdating = new object();
32 public SybaseDataAdapter ()
33 : this (new SybaseCommand ())
37 public SybaseDataAdapter (SybaseCommand selectCommand)
39 DeleteCommand = new SybaseCommand ();
40 InsertCommand = new SybaseCommand ();
41 SelectCommand = selectCommand;
42 UpdateCommand = new SybaseCommand ();
45 public SybaseDataAdapter (string selectCommandText, SybaseConnection selectConnection)
46 : this (new SybaseCommand (selectCommandText, selectConnection))
50 public SybaseDataAdapter (string selectCommandText, string selectConnectionString)
51 : this (selectCommandText, new SybaseConnection (selectConnectionString))
59 public SybaseCommand DeleteCommand {
60 get { return deleteCommand; }
61 set { deleteCommand = value; }
64 public SybaseCommand InsertCommand {
65 get { return insertCommand; }
66 set { insertCommand = value; }
69 public SybaseCommand SelectCommand {
70 get { return selectCommand; }
71 set { selectCommand = value; }
74 public SybaseCommand UpdateCommand {
75 get { return updateCommand; }
76 set { updateCommand = value; }
79 IDbCommand IDbDataAdapter.DeleteCommand {
80 get { return DeleteCommand; }
82 if (!(value is SybaseCommand))
83 throw new ArgumentException ();
84 DeleteCommand = (SybaseCommand)value;
88 IDbCommand IDbDataAdapter.InsertCommand {
89 get { return InsertCommand; }
91 if (!(value is SybaseCommand))
92 throw new ArgumentException ();
93 InsertCommand = (SybaseCommand)value;
97 IDbCommand IDbDataAdapter.SelectCommand {
98 get { return SelectCommand; }
100 if (!(value is SybaseCommand))
101 throw new ArgumentException ();
102 SelectCommand = (SybaseCommand)value;
106 IDbCommand IDbDataAdapter.UpdateCommand {
107 get { return UpdateCommand; }
109 if (!(value is SybaseCommand))
110 throw new ArgumentException ();
111 UpdateCommand = (SybaseCommand)value;
116 ITableMappingCollection IDataAdapter.TableMappings {
117 get { return TableMappings; }
120 #endregion // Properties
124 protected override RowUpdatedEventArgs CreateRowUpdatedEvent (DataRow dataRow, IDbCommand command, StatementType statementType, DataTableMapping tableMapping)
126 return new SybaseRowUpdatedEventArgs (dataRow, command, statementType, tableMapping);
130 protected override RowUpdatingEventArgs CreateRowUpdatingEvent (DataRow dataRow, IDbCommand command, StatementType statementType, DataTableMapping tableMapping)
132 return new SybaseRowUpdatingEventArgs (dataRow, command, statementType, tableMapping);
135 protected override void OnRowUpdated (RowUpdatedEventArgs value)
137 SybaseRowUpdatedEventHandler handler = (SybaseRowUpdatedEventHandler) Events[EventRowUpdated];
138 if ((handler != null) && (value is SybaseRowUpdatedEventArgs))
139 handler(this, (SybaseRowUpdatedEventArgs) value);
142 protected override void OnRowUpdating (RowUpdatingEventArgs value)
144 SybaseRowUpdatingEventHandler handler = (SybaseRowUpdatingEventHandler) Events[EventRowUpdating];
145 if ((handler != null) && (value is SybaseRowUpdatingEventArgs))
146 handler(this, (SybaseRowUpdatingEventArgs) value);
149 #endregion // Methods
151 #region Events and Delegates
153 public event SybaseRowUpdatedEventHandler RowUpdated {
154 add { Events.AddHandler (EventRowUpdated, value); }
155 remove { Events.RemoveHandler (EventRowUpdated, value); }
158 public event SybaseRowUpdatingEventHandler RowUpdating {
159 add { Events.AddHandler (EventRowUpdating, value); }
160 remove { Events.RemoveHandler (EventRowUpdating, value); }
163 #endregion // Events and Delegates