internal override List<Trigger> GetVersionTableTriggers(ExtractedTableMap table, VersionField.VersionTypes versionType) { Type t = Pool.Mapping.GetTypeForVersionTable(table.TableName); List<Trigger> ret = new List<Trigger>(); string tmp = ""; tmp += "\tINSERT INTO " + table.TableName + "(" + table.Fields[0].FieldName; for (int x = 1; x < table.Fields.Count; x++) { ExtractedFieldMap efm = table.Fields[x]; tmp += "," + efm.FieldName; } tmp += ") VALUES("; if (table.Fields[0].Type=="DATETIME") tmp+="CURRENT_DATE()"; else tmp+="0"; for (int x = 1; x < table.Fields.Count; x++) { ExtractedFieldMap efm = table.Fields[x]; tmp += ",NEW." + efm.FieldName; } tmp += ");"; ret.Add(new Trigger(Pool.Translator.GetVersionInsertTriggerName(t,this), "AFTER INSERT ON " + Pool.Mapping[t].Name+ " FOR EACH ROW", tmp)); ret.Add(new Trigger(Pool.Translator.GetVersionUpdateTriggerName(t,this), "AFTER UPDATE ON " + Pool.Mapping[t].Name+" FOR EACH ROW", tmp)); return ret; }
public sTable GetVersionTable(Type table,out VersionField.VersionTypes versionType){ versionType = _versionTypes[table]; return _versionMaps[table]; }
public VersionForeignField(bool NullAble,UpdateDeleteAction OnUpdate,UpdateDeleteAction OnDelete,VersionField.VersionTypes VersionType) : base(NullAble,OnUpdate,OnDelete) { _versionType = VersionType; }
public VersionForeignField(UpdateDeleteAction OnUpdate,UpdateDeleteAction OnDelete,VersionField.VersionTypes VersionType) : this(true,OnUpdate,OnDelete,VersionType) {}
public VersionForeignField(bool NullAble,VersionField.VersionTypes VersionType) : this(NullAble,UpdateDeleteAction.NO_ACTION,UpdateDeleteAction.NO_ACTION,VersionType) {}
public VersionForeignField(VersionField.VersionTypes VersionType) : this(true,UpdateDeleteAction.NO_ACTION,UpdateDeleteAction.NO_ACTION,VersionType) { }