public virtual TriggerSchema GetNewTriggerSchema(string name) { TriggerSchema schema = new TriggerSchema(this); schema.Name = name; return(schema); }
protected virtual TriggerSchema GetTableTrigger(DataRow row, TableSchema table) { TriggerSchema schema = new TriggerSchema(this); schema.TableName = table.Name; return(schema); }
protected virtual string GetTriggerCreateStatement(TriggerSchema trigger) { StringBuilder sb = new StringBuilder(); // { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } // [ WITH APPEND ] // [ NOT FOR REPLICATION ] // AS // [ { IF UPDATE ( column ) // [ { AND | OR } UPDATE ( column ) ] // [ ...n ] // | IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask ) // { comparison_operator } column_bitmask [ ...n ] // } ] // sql_statement [ ...n ] sb.Append("CREATE TRIGGER "); sb.Append(trigger.Name); sb.Append(" ON "); sb.Append(trigger.TableName); if (trigger.TriggerType == TriggerType.Before) { sb.Append(" FOR "); } else { sb.Append(" AFTER "); } switch (trigger.TriggerEvent) { case TriggerEvent.Delete: sb.Append("DELETE"); break; case TriggerEvent.Insert: sb.Append("INSERT"); break; case TriggerEvent.Update: sb.Append("UPDATE"); break; default: throw new NotImplementedException(); } sb.Append(" AS "); sb.Append(Environment.NewLine); sb.Append(trigger.Source); sb.Append(";"); return(sb.ToString()); }
public TriggerSchema(TriggerSchema trigger) : base(trigger) { tableName = trigger.tableName; triggerType = trigger.triggerType; triggerFireType = trigger.triggerFireType; triggerEvent = trigger.triggerEvent; position = trigger.position; isActive = trigger.isActive; source = trigger.source; }
public TriggerSchema (TriggerSchema trigger) : base (trigger) { tableName = trigger.tableName; triggerType = trigger.triggerType; triggerFireType = trigger.triggerFireType; triggerEvent = trigger.triggerEvent; position = trigger.position; isActive = trigger.isActive; source = trigger.source; }
protected virtual string GetTriggerCreateStatement(TriggerSchema trigger) { StringBuilder sb = new StringBuilder(); sb.Append("CREATE TRIGGER "); sb.Append(trigger.Name); if (trigger.TriggerType == TriggerType.Before) { sb.Append(" BEFORE "); } else { sb.Append(" AFTER "); } switch (trigger.TriggerEvent) { case TriggerEvent.Delete: sb.Append("DELETE"); break; case TriggerEvent.Insert: sb.Append("INSERT"); break; case TriggerEvent.Update: sb.Append("UPDATE"); break; default: throw new NotImplementedException(); } sb.Append(" ON "); sb.Append(trigger.TableName); sb.Append(" FOR EACH ROW "); sb.Append(Environment.NewLine); sb.Append(trigger.Source); sb.Append(";"); return(sb.ToString()); }
public override ICollection <TriggerSchema> GetTriggers() { CheckConnectionState(); List <TriggerSchema> triggers = new List <TriggerSchema> (); IDbCommand command = connectionProvider.CreateCommand("SELECT RDB$TRIGGER_NAME, RDB$RELATION_NAME, RDB$TRIGGER_TYPE FROM RDB$TRIGGERS;"); using (command) { using (IDataReader r = command.ExecuteReader()) { while (r.Read()) { TriggerSchema trigger = new TriggerSchema(this); trigger.Name = r.GetString(0); //TODO: table and type triggers.Add(trigger); } r.Close(); } connectionProvider.Close(command.Connection); } return(triggers); }
public virtual void DropTrigger(TriggerSchema trigger) { throw new NotImplementedException(); }
//http://www.sqlite.org/lang_createtrigger.html public override void CreateTrigger (TriggerSchema trigger) { string sql = GetTriggerCreateStatement (trigger); ExecuteNonQuery (sql); }
public override ICollection<TriggerSchema> GetTriggers () { CheckConnectionState (); List<TriggerSchema> triggers = new List<TriggerSchema> (); IDbCommand command = connectionProvider.CreateCommand ("SELECT RDB$TRIGGER_NAME, RDB$RELATION_NAME, RDB$TRIGGER_TYPE FROM RDB$TRIGGERS;"); using (command) { using (IDataReader r = command.ExecuteReader ()) { while (r.Read ()) { TriggerSchema trigger = new TriggerSchema (this); trigger.Name = r.GetString (0); //TODO: table and type triggers.Add (trigger); } r.Close (); } connectionProvider.Close (command.Connection); } return triggers;
private void AddTrigger (TriggerSchema trigger) { store.AppendValues (trigger.Name, trigger.TriggerType.ToString (), trigger.TriggerEvent.ToString (), trigger.TriggerFireType == TriggerFireType.ForEachRow, trigger.Position.ToString (), trigger.IsActive, trigger.Comment, trigger.Source , trigger); }
//http://www.postgresql.org/docs/8.2/interactive/sql-altertrigger.html public override void RenameTrigger (TriggerSchema trigger, string name) { ExecuteNonQuery ("ALTER TRIGGER " + trigger.Name + " ON " + trigger.TableName + " RENAME TO " + name + ";"); trigger.Name = name;
//http://msdn2.microsoft.com/en-us/library/aa258846(SQL.80).aspx public override void DropTrigger(TriggerSchema trigger) { ExecuteNonQuery("DROP TRIGGER " + trigger.Name); }
protected virtual string GetTriggerCreateStatement (TriggerSchema trigger) { StringBuilder sb = new StringBuilder (); sb.Append ("CREATE TRIGGER "); sb.Append (trigger.Name); switch (trigger.TriggerType) { case TriggerType.Before: sb.Append (" BEFORE"); break; case TriggerType.After: sb.Append (" AFTER"); break; default: throw new NotImplementedException (); } switch (trigger.TriggerEvent) { case TriggerEvent.Insert: sb.Append (" INSERT "); break; case TriggerEvent.Update: sb.Append (" UPDATE "); break; case TriggerEvent.Delete: sb.Append (" DELETE "); break; default: throw new NotImplementedException (); } sb.Append ("ON "); sb.Append (trigger.TableName); sb.Append (' '); sb.Append (Environment.NewLine); switch (trigger.TriggerFireType) { case TriggerFireType.ForEachRow: case TriggerFireType.ForEachStatement: sb.Append (" FOR EACH ROW "); break; default: throw new NotImplementedException (); } sb.Append (Environment.NewLine); sb.Append ("BEGIN "); sb.Append (Environment.NewLine); sb.Append (trigger.Source); sb.Append (' '); sb.Append (Environment.NewLine); sb.Append ("END;"); return sb.ToString (); }
public virtual void RenameTrigger(TriggerSchema trigger, string name) { throw new NotImplementedException(); }
//http://www.postgresql.org/docs/8.2/interactive/sql-altertrigger.html public override void RenameTrigger(TriggerSchema trigger, string name) { ExecuteNonQuery("ALTER TRIGGER " + trigger.Name + " ON " + trigger.TableName + " RENAME TO " + name + ";"); trigger.Name = name; }
//http://www.postgresql.org/docs/8.2/interactive/sql-droptrigger.html public override void DropTrigger(TriggerSchema trigger) { ExecuteNonQuery("DROP TRIGGER IF EXISTS " + trigger.Name + " ON " + trigger.TableName + ";"); }
//http://www.sqlite.org/lang_droptrigger.html public override void DropTrigger (TriggerSchema trigger) { ExecuteNonQuery ("DROP TRIGGER IF EXISTS " + trigger.Name); }
protected virtual TriggerSchema GetTableTrigger (DataRow row, TableSchema table) { TriggerSchema schema = new TriggerSchema (this); schema.TableName = table.Name; return schema; }
public virtual void DropTrigger (TriggerSchema trigger) { throw new NotImplementedException (); }
//http://msdn2.microsoft.com/en-us/library/aa258254(SQL.80).aspx public override void CreateTrigger(TriggerSchema trigger) { string sql = GetTriggerCreateStatement(trigger); ExecuteNonQuery(sql); }
public virtual void RenameTrigger (TriggerSchema trigger, string name) { throw new NotImplementedException (); }
//http://msdn2.microsoft.com/en-us/library/aa225939(SQL.80).aspx public override void AlterTrigger(TriggerSchema trigger) { throw new NotImplementedException(); }
public virtual TriggerSchema GetNewTriggerSchema (string name) { TriggerSchema schema = new TriggerSchema (this); schema.Name = name; return schema; }
//http://msdn2.microsoft.com/en-US/library/aa238878(SQL.80).aspx public override void RenameTrigger(TriggerSchema trigger, string name) { Rename(trigger.Name, name, "OBJECT"); trigger.Name = name; }
//http://www.postgresql.org/docs/8.2/interactive/sql-altertrigger.html public override void AlterTrigger (TriggerSchema trigger) { throw new NotImplementedException ();