15.01.2008, 20:10 | #1 |
Участник
|
aEremenko: DAX 2008, что нового во взаимодействии с БД?
Источник: http://blogs.msdn.com/aeremenk/archi...5/7118429.aspx
============== Вообще-то, изменения между версиями можно характеризовать так:
Появилась поддержка сложных структур запросов, т.е. возможность создавать объединения не только типа родитель - наследник, но и более сложные, правда такие объединения можно делать только в структурах запросов. Реализована поддержка union, правда не в коде X++, а только для структур запросов, например: X++: query = new Query(); query.queryType(QueryType::Union); // другим значением QueryType является "Join" X++: update_recordset batchJob setting Status = BatchStatus::Canceled, EndDateTime = thisDate, Finishing = 1 where batchJob.Status == BatchStatus::Cancelling notexists join batch where ( (batch.Status == BatchStatus::Ready || batch.Status == BatchStatus::Executing || batch.Status == BatchStatus::Hold || batch.Status == BatchStatus::Cancelling) && batch.BatchJobId == batchJob.RecId ); rowsUpdated = (batchJob.RowCount() > 0); // использование rowCount() X++: Table t; try { while select forupdate t { test.Field1 = ; t.update(); } } catch ( Exception::DuplicateKeyException, t ) { infolog( + t.Field1 ); } Данная статья подготовлена с помощью Windows Live Writer. Источник: http://blogs.msdn.com/aeremenk/archi...5/7118429.aspx
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
16.01.2008, 07:01 | #2 |
Участник
|
Цитата:
Появилась поддержка сложных структур запросов, т.е. возможность создавать объединения не только типа родитель - наследник, но и более сложные, правда такие объединения можно делать только в структурах запросов.
Цитата:
Реализована поддержка union, правда не в коде X++, а только для структур запросов
Цитата:
Реализована обработка исключений при дублировании уникального ключа,
Цитата:
Улучшение работы с дисплей-методами подразумевает их расчет в пакетном режиме на сервере
|
|
16.01.2008, 07:15 | #3 |
Участник
|
Кстати, вот вопрос, почему бы темповые таблицы не сделать реально темповыми прямо на скуле? Шут с ним, что они не смогут храниться на клиенте, есть кэширование и вообще это не так критично.
|
|
16.01.2008, 10:21 | #4 |
Участник
|
>>>Т.е. на формах не получится? а если я query подпихну форме?
На формах и во вью вроде обещали сделать. Имеется ввиду, что в коде X++ нельзя |
|
16.01.2008, 11:02 | #5 |
Участник
|
Надеюсь вьюхи хоть в виртуальных компаниях заработают, а то толку от них..
|
|
16.01.2008, 12:19 | #6 |
Участник
|
Так все-таки не DAX 2008, а DAX 2009?..
такое ощущение, что выпуск RTM-версии DAX 5.0 был отложен, потому что в блоге Алексея Еременко появились интересные уточнения:
Цитата:
В наступившем году нас ждет встреча с Microsoft Dynamics 2009. Версия 5.0 будет переименована для соответствия общей политике наименования продуктов. При этом 2009 не означает перенос выпуска версии на 2009 год, просто версия системы выйдет во второй половине 2008 года.
Цитата:
DAX 2009, что нового во взаимодействии с БД?
Вообще-то, изменения между версиями можно характеризовать так:
|
|
16.01.2008, 12:55 | #7 |
Banned
|
Кто бы сомневался. Да, собственно говоря, не особенно-то и жалко. Если судить по проспектам и презентациям, ничего там такого выдающегося не будет, чтобы хотелось "прямо здесь и сейчас". 4.0 предоставила нам Unicode и общий код для Европы - больше ничего и не надо.
Последний раз редактировалось EVGL; 16.01.2008 в 12:58. |
|
16.01.2008, 13:14 | #8 |
Участник
|
Нет. Сроки остались такими, как и прежде.
RTM версия выйдет по плану. Просто public release запланирован на вторую половину года, а соответственно немного по-другому называется. Маркетинг |
|
16.01.2008, 15:00 | #9 |
Участник
|
Kashperuk Ivan: Microsoft Dynamics AX 2009 - some of the new development features
Источник: http://kashperuk.blogspot.com/2008/0...me-of-new.html
============== Alexei Eremenko from Microsoft Russia has posted a number of articles about the new features that will be available in DAX 2009. The original link, which is in Russian (but the main thing to look at is the code, which is universal): http://blogs.msdn.com/aeremenk/archi...5/7118429.aspx I would like to make a brief review of the features he talked about for the English-speaking population and another feature I liked that Alexei did not mention. Let's start with the support for union in SQL statements (but only when using Query* classes). X++: query = new Query(); query.queryType(QueryType::Union); // The other value of QueryType is "Join" Another Exception type has been introduced, which now actually allows to catch the DuplicateKey exception: X++: Table t; try { while select forupdate t { test.Field1 = ; t.update(); } } catch ( Exception::DuplicateKeyException, t ) { infolog(Record already exists - + t.Field1 ); } The bulk DML statements now allow using inner/outer joins, and you can access the result of the update_recordset operation to get the number of rows that were updated: X++: update_recordset batchJob setting Status = BatchStatus::Canceled, EndDateTime = thisDate, Finishing = 1 where batchJob.Status == BatchStatus::Cancelling notexists join batch where ( (batch.Status == BatchStatus::Ready || batch.Status == BatchStatus::Executing || batch.Status == BatchStatus::Hold || batch.Status == BatchStatus::Cancelling) && batch.BatchJobId == batchJob.RecId ); rowsUpdated = (batchJob.RowCount() > 0); // get the number of updated rows with rowCount() Here are code snippets to explain what I mean: X++: static void DataBaseAccess_CrossCompany(Args _args) { InventTable inventTable; container companyContainer = ['IN1', 'QMS']; ; while select crossCompany : companyContainer inventTable where inventTable.ItemId == "B-R14" { print inventTable.ItemId, " -- ", inventTable.dataAreaId; } pause; } The same functionality is available with the Query classes: X++: static void DataBaseAccess_CrossCompany_Query(Args _args) { Query query = new Query(); QueryBuildDataSource qbds = query.addDataSource(tableNum(InventTable)); QueryRun queryRun; InventTable inventTable; ; qbds.addRange(fieldNum(InventTable, ItemId)).value(queryValue("B-R14")); query.allowCrossCompany(true); query.addCompanyRange("IN1"); query.addCompanyRange("QMS"); queryRun = new QueryRun(query); while (queryRun.next()) { inventTable = queryRun.get(tableNum(InventTable)); print inventTable.ItemId, " -- ", inventTable.dataAreaId; } pause; } If you don't add any specific company ranges, the data will be retrieved from all companies you have access to. Microsoft Dynamics AX 2009 has a lot more to offer, of course. But enough for today. Источник: http://kashperuk.blogspot.com/2008/0...me-of-new.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
Теги |
ax2009, что нового |
|
|