AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX Blogs
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.01.2021, 03:41   #1  
Blog bot is offline
Blog bot
Участник
 
23,925 / 805 (74) +++++++
Регистрация: 28.10.2006
How to delete obsolete values in ENUMVALUETABLE table X++
Источник: http://alexvoy.blogspot.com/2021/01/...values-in.html
==============

Following up this old issue with extensions to enums, I propose to run this class, if you cannot delete added values (CDP* in my case) directly in SQL Studio. I am not sure if it is going to work in PROD. Please use it at your own risk.




class CDPENUMVALUETABLEDelete
{

public static void main(Args _args)
{
if(!Box::confirm("Would you like to delete all CDP* values of SysPolicyRuleTypeEnum type in ENUMVALUETABLE? (If not, just print them"))
{
CDPENUMVALUETABLEDelete::printRecords();
return;
}
CDPENUMVALUETABLEDelete::deleteRecords();
info("all related records have been deleted. Synchonize DB now!");
}

private static void deleteRecords()
{
Connection conn;
SqlStatementExecutePermission permission;

str sqlSelect =
@"SELECT
t.RECID
from ENUMVALUETABLE as t
join ENUMIDTABLE
on enumid = id
and ENUMIDTABLE.NAME = 'SysPolicyRuleTypeEnum'
and t.NAME like 'CDP%'";
str sqlDelete = strFmt("%1 (%2)", "DELETE FROM ENUMVALUETABLE WHERE RECID IN ", sqlSelect);

permission = new SqlStatementExecutePermission(sqlDelete);
conn = new Connection();
permission.assert();
//conn.transactionScopeBegin();
Statement statement = conn.createStatement();

int result = statement.executeUpdate(sqlDelete);
str errText = statement.getLastErrorText();
if(errText)
{
Info(errText);
}

// the permissions needs to be reverted back to original condition.
CodeAccessPermission::revertAssert();
}

private static void printRecords()
{
Connection conn;
SqlStatementExecutePermission permission;

str sqlSelect =
@"SELECT
t.RECID,
t.ENUMID,
t.ENUMVALUE,
t.NAME
from ENUMVALUETABLE as t
join ENUMIDTABLE
on enumid = id
and ENUMIDTABLE.NAME = 'SysPolicyRuleTypeEnum'
and t.NAME like 'CDP%'";

permission = new SqlStatementExecutePermission(sqlSelect);
conn = new Connection();
permission.assert();

Statement statement = conn.createStatement();

ResultSet results = statement.executeQuery(sqlSelect);
str errText = statement.getLastErrorText();
if(errText)
{
Info(errText);
}

int enumId;
str name;
int i = 1;
while (results.next())
{
enumId = results.getInt(3);
name = results.getString(4);
Info(strFmt("Found %1) %2 : %3", i, enumId, name));
i++;
}
// the permissions needs to be reverted back to original condition.
CodeAccessPermission::revertAssert();
}

}



Do not forget to build your models and full DB sync after!



Источник: http://alexvoy.blogspot.com/2021/01/...values-in.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
saurav-nav: NAV 2018 - Lots of New Objects! Blog bot NAV: Blogs 0 04.12.2017 10:11
wiki.dynamicsbook: Changes Made in Navision Attain 3.60 Blog bot Dynamics CRM: Blogs 0 02.09.2008 13:23
wiki.dynamicsbook: Changes Made in Navision Attain 3.01B Blog bot Dynamics CRM: Blogs 0 21.08.2008 20:43
Nav developer: How to configure and make a table available on Employee Portal in Microsoft Dynamics NAV. Blog bot Dynamics CRM: Blogs 0 24.04.2008 10:54
jerry-dynamics: How can you make sure that the end user can not delete a record in one table if there are related records in another table? Blog bot DAX Blogs 0 16.06.2007 11:20
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:31.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.