//***************************************************************************// // Legenerálja a megadott entitás törlését elvégzo DA muveletet. // //***************************************************************************// template GenerateDeleteEntity(MClass as ENTITY) #region DeleteEntity private const string m_FizikaiDeleteCommandText = @"DELETE FROM [ConvertNameToSQLTableName([ENTITY.name])] WHERE (ID = :[ConvertNameToCommandParameterName("ID")]) "; private const string m_LogikaiDeleteCommandText = @" UPDATE [ConvertNameToSQLTableName([ENTITY.name])] SET TOROLT = 'T' , SERIAL = SERIAL + 1, [if(GetTaggedValue([ENTITY], "dkt") == "true")] DELETER = :[ConvertNameToCommandParameterName("Deleter")], DELETED = :[ConvertNameToCommandParameterName("Deleted")], [end if] LASTCHANGED = :[ConvertNameToCommandParameterName("LastChanged")], MODIFIER = :[ConvertNameToCommandParameterName("Modifier")] WHERE (ID = :[ConvertNameToCommandParameterName("ID")]) "; public override void DeleteEntity([ENTITY.name] entity, bool logikai = true) { var _deleteCommandText = logikai ? m_LogikaiDeleteCommandText : m_FizikaiDeleteCommandText; using ([GetCSharpSQLCommandType()] command = DAUtil.CreateCommand(_deleteCommandText)) { command.Parameters.Add("[ConvertNameToCommandParameterName("ID")]", [GetCSharpSQLIDType()]).Value = entity.ID; if (logikai) { DateTime lastchanged = DateTime.Now; var modifier = UserContext.Instance.UniqueIdentifier; command.Parameters.Add("[ConvertNameToCommandParameterName("LastChanged")]", [GetCSharpDatasetType("DateTime", "")]).Value = lastchanged; command.Parameters.Add("[ConvertNameToCommandParameterName("Modifier")]", [GetCSharpSQLIDType()]).Value = modifier; [if(GetTaggedValue([ENTITY], "dkt") == "true")] command.Parameters.Add("[ConvertNameToCommandParameterName("Deleted")]", [GetCSharpDatasetType("DateTime", "")]).Value = lastchanged; command.Parameters.Add("[ConvertNameToCommandParameterName("Deleter")]", [GetCSharpSQLIDType()]).Value = modifier; [end if] } if (command.ExecuteNonQuery() != 1) { throw new EntityNotFoundException("[ENTITY.name]", entity.ID); } } [if (IsMasterEntity([ENTITY]) == "false" && GetInheritance([ENTITY]) != "tpc")] entity.InheritedDA.DeleteEntity(entity, logikai); [end if] } [loop (ENTITY -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as STARTROLE -> MClass as STARTCLASS where (GetStereoType([STARTCLASS]) == "Entity"))] [loop (CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as ENDCLASS where ([STARTROLE.id] < [ENDROLE.id] and GetStereoType([ENDCLASS]) == "Entity"))] private const string m_DeleteBy[DefineRoleName([STARTROLE])]And[DefineRoleName([ENDROLE])]CommandText = @" delete from [ConvertNameToSQLTableName([ENTITY.name])] where ([ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([STARTROLE]))]) and ([ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))]) "; public void DeleteBy[DefineRoleName([STARTROLE])]And[DefineRoleName([ENDROLE])](int [ConvertRoleToName([STARTROLE])], int [ConvertRoleToName([ENDROLE])]) { using ([GetCSharpSQLCommandType()] command = DAUtil.CreateCommand(m_DeleteBy[DefineRoleName([STARTROLE])]And[DefineRoleName([ENDROLE])]CommandText)) { command.Parameters.Add("[ConvertNameToCommandParameterName(ConvertRoleToName([STARTROLE]))]", [GetCSharpSQLIDType()]).Value = [ConvertRoleToName([STARTROLE])]; command.Parameters.Add("[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))]", [GetCSharpSQLIDType()]).Value = [ConvertRoleToName([ENDROLE])]; command.ExecuteNonQuery(); } } [end loop] [end loop] #endregion end template