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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.12.2020, 19:39   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
D365FO: Navigation methods are not supported at this time?
Кто в курсе, NavigationPropertyMethod действительно не поддерживается в D365FO?

просто на этих методах основан Unit Of Work.

И теперь получается, что Unit of Work тоже не поддерживается?


см. также.
https://community.dynamics.com/ax/b/...s/unit-of-work
Миниатюры
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 68
Размер:	20.1 Кб
ID:	13000  
__________________
полезное на axForum, github, vk, coub.
Старый 09.12.2020, 06:20   #2  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Почему не поддерживается. Поддерживается, то только без экстеншенов.
А кстати какая идея вообще стоит за UnitOfWork, почему нельзя просто присваивать связи в транзакции?
За это сообщение автора поблагодарили: sukhanchik (6).
Старый 09.12.2020, 11:04   #3  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,320 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
Кто в курсе, NavigationPropertyMethod действительно не поддерживается в D365FO?

просто на этих методах основан Unit Of Work.

И теперь получается, что Unit of Work тоже не поддерживается?


см. также.
https://community.dynamics.com/ax/b/...s/unit-of-work
В PU38 работает. Но когда-то был период, когда не работало, это правда. Я уж потерял надежду...

Цитата:
Сообщение от trud Посмотреть сообщение
Почему не поддерживается. Поддерживается, то только без экстеншенов.
А кстати какая идея вообще стоит за UnitOfWork, почему нельзя просто присваивать связи в транзакции?
Я бы тоже присоединился к этому вопросу, потому что с т.з. разбиения кода на методы - очень неудобно скрывать RecId. Гораздо удобнее сделать insert(), сохранить присвоенный RecId куда-нибудь в переменную и ее потом использовать в разных методах.

Ну т.е. пока как-то UnitOfWork на меня не произвел должного впечатления. В отличие, кстати, от Navigation Property Methods
__________________
Возможно сделать все. Вопрос времени
Старый 09.12.2020, 11:11   #4  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Я так понимаю на этих Navigation Property Methods не будут работать перекрестные ссылки? Если так, то наверное лучше их не использовать, не так уж и сложно написать метод для поиска
Старый 09.12.2020, 11:34   #5  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,320 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от trud Посмотреть сообщение
Я так понимаю на этих Navigation Property Methods не будут работать перекрестные ссылки? Если так, то наверное лучше их не использовать, не так уж и сложно написать метод для поиска
А что значит не будут работать перекрестные ссылки? Сейчас же есть только Find References, которые можно запустить только стоя на узле элемента (ну или явно из кода из определения метода). А т.к. этот метод не присутствует в узле (или в коде), то по нему поиск и нельзя будет запустить.

У этих методов есть другой недостаток - насколько я понимаю они могут быть использованы для выборки только на чтение. Т.е. для выборки на изменение все равно придется писать свой метод. А в этом случае тогда ценность Navigation Property Methods сильно снижается. Конечно могут быть ситуации, когда достаточно выбирать только на чтение, но в общем количестве этих ситуаций гораздо меньше общего количества
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 09.12.2020 в 11:36.
Старый 09.12.2020, 11:46   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от trud Посмотреть сообщение
Почему не поддерживается. Поддерживается, то только без экстеншенов.
ээээ. а что делать с экстеншенами?
и как их использовать в UnitOfWork?

Цитата:
Сообщение от trud Посмотреть сообщение
А кстати какая идея вообще стоит за UnitOfWork, почему нельзя просто присваивать связи в транзакции?
Ты меня об этом спрашиваешь?
Почему бы не спросить авторов этого чуда.

Насколько я понимаю:
1. ноги растут из традиционного программирования, где для каждой таблички создается dto-класс. и традиционных ORM.
2. задача - минимизировать операции с базой данных за счет того, что в базу передается не каждое изменение в dto-классе, а некие "значимые состояния"
3. в аксапте типичный где UnitOfWork очень пригодился бы - это InventSumDelta - суммирование происходит "в памяти" транзакция записывает в InventSum только "финальный" итог.

В аксапте какой-то деятель начал использовать UnitOfWork совсем для других целей. "Поясню".

В аксапте некие другие деятели в 2012 решили перейти на искусственные индексы по RecId. Для этого было добавлена куча пропертей в объектах, добавлены новые понятия типа Replacement Index, введены новые типы контролов, которые автоматически делают разыменование искусственных индексов (но при этом теряют поиск по этому полю )

В принципе, решали проблему "медленной генерации ключевых полей". С прицелом передать генерацию RecId на SQL server. И даже попытаться воспользоваться родным SQL-ным autoIncrement-ом.

В общем, решили и сделали.

И! вдруг! обнаружили! что искусственные ключи ведут себя совершенно иначе в массовых операциях.

как происходят массовые операции для связанных таблиц для "наших" ключей:
1. мы генерим код (обычно вызываем NumSeq)
2. заполняем мастер-справочник данными
3. -
4. заполняем подчиненные справочники данными
5. заполняем в подчиненных справочниках сгенеренный код (который мы знаем)
6. используем какой-нибудь insertRecorset, SortedList для массового обновления данных

важно, что шаг 6 легко можно вынести в отдельный метод, который знать ничего не знает о связях, бизнес-логике и прочих "несущественных" мелочах

как происходят массовые операции для связанных таблиц для "системных" ключей.
1. -
2. заполняем мастер-справочник данными
3. записываем в БД(!), получаем сгенеренный системой recID
4. заполняем подчиненные справочники данными
5. заполняем в подчиненных справочниках recID
6. записываем данные из подчиненного справочника (уже неважно как)

главное, с recID-ключом массовое обновление базы данных идет в пешее иротическое. универсальные методы работы с бд идут туда же.

ситуация сильно ухудшается, если мы имеем дело с итерационными процессами типа обновления себестоимости (см. InventSumDelta)

===========
естественно, доблестные программисты начали решать "проблему", которую создали архитекторы, абсолютно программистскими методами.

См. класс systemSequence и обслуживающий его ужас в виде "appl.sysRecIdSequence()"

Ax2009, сбросить кеш recid SystemSequences

http://sinedax.blogspot.com/2018/09/...-dynamics.html

но это "проблема" чисто программистскими методами не решается, поскольку сидит на архитектурном уровне . Поэтому на программистском уровне пришлось вводить методы suspendRecIds/removeRecIdSuspension

до сих пор непонятно приостанавливают ли эти методы выделение recID глобально (для всех потоков) или только для одного потока. Есть разные мнения. но если приостанавливают глобально, то это полный пипец для производительности.

на архитектурном уровне suspendRecIds для таблицы тут же запрещает рекурсивные алгоритмы и алгоритмы, которые "внутре" могут вызвать создание записей в этой же таблице. (Прощай деревья!)

"Сходили за хлебушком" называется, ускорили индексы заменив "длинные" и составные строковые ключи на "короткие" recID - запретили массовые операциии с БД, ввели stop-world-паттерн, поломали деревья.

но даже если suspendRecIds приостанавливает выделение только в области видимости переменной systemSequence, как CodePermission (будь проклят тот архитектор, который принял решение добавить эту хрень в аксапту), то все равно остается непонятным как на самом деле ЭТО ведет себя если будет выброшено исключение (suspendRecIds сработал, а до removeRecIdSuspension не дошли) и что будет с UserConnection...

===========
естессно, народ в майкрософте не дурак и видит проблему.
но что делать, если решение об искусственных ключах уже принято и кто-то уже отчитался.

и тут возник Unit Of Work.
который в основе своей использует эти самые навигационные методы...

но внезапно(!), видимо, другая команда добавила наследование таблиц в 2012
в результате борьбы бульдогов под ковром (там еще и отдел отчетности встрял) в ax2012sp1 наследование было выброшено на помойку...
ну.. как...
на уровне SQL никакого наследования нет - все в одной таблице.
но зато на уровне AOT совершенно дикое и никем не принятое наследование.

Хорошо, сделали Unit Of Work перестал ругаться на наследование.
но похоже пришла беда откуда не ждали - extensions в D365
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 09.12.2020 в 12:56.
За это сообщение автора поблагодарили: trud (2), sukhanchik (8).
Старый 09.12.2020, 12:01   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от trud Посмотреть сообщение
Я так понимаю на этих Navigation Property Methods не будут работать перекрестные ссылки?
ГЫЫЫЫЫ. Кого это волнует в Майкрософте?
Они наплодили объектов, по которым не генерируются перекрестные ссылки...
https://coub.com/view/8jrsb

Цитата:
Сообщение от trud Посмотреть сообщение
Если так, то наверное лучше их не использовать, не так уж и сложно написать метод для поиска
Дык!
Если я правильно понимаю,
1. поисковый метод сделает отдельный select и получит значения из базы
2. навигационный метод получит значения из UnitOfWork. Это значение может отличатся от того, что лежит в базе из-за операций изменения в UnitOfWork

__________________
полезное на axForum, github, vk, coub.
Старый 09.12.2020, 12:56   #8  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
как происходят массовые операции для связанных таблиц для "системных" ключей.
1. -
2. заполняем мастер-справочник данными
3. записываем в БД(!), получаем сгенеренный системой recID
4. заполняем подчиненные справочники данными
5. заполняем в подчиненных справочниках recID
6. записываем данные из подчиненного справочника (уже неважно как)
Странно почему программисты в этой схеме не сделали так
1. -
2. заполняем мастер-справочник данными
// 3. записываем в БД(!), получаем сгенеренный системой recID
3. Генерируем в буфере мастер-справочника RecId, (можно например для этого сделать метод на Common)
4. заполняем подчиненные справочники данными
5. заполняем в подчиненных справочниках RefRecID на мастер-справочник
6. записываем данные из подчиненного справочника (уже неважно как, можно и по старинке)

По удобству использования все то же самое как и раньше для естественных ключей.
Плюс можно сохранить логику вставки записей - сперва строки, потом шапка, на которую эти строки ссылаются (так много где сделано в ax3-2009) - это может быть полезно в некоторых случаях, когда какой-то подписчик или интеграция с внешней системой отбирает документы по шапкам и хватают еще до конца не сгенерированный документ, так как шапка уже вставилась и куда то вовне уходит часть документа.
За это сообщение автора поблагодарили: mazzy (2).
Старый 09.12.2020, 13:03   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Logger Посмотреть сообщение
Странно почему программисты в этой схеме не сделали так
...
3. Генерируем в буфере мастер-справочника RecId, (можно например для этого сделать метод на Common)
Почему не сделали?
Именно так и сделали.

Цитата:
systemSequence и обслуживающий его ужас в виде "appl.sysRecIdSequence()"

... на программистском уровне пришлось вводить методы suspendRecIds/removeRecIdSuspension
а suspendRecIds похоже останавливает выделение recId во всех потоках
ну и далее, что я писал.
https://coub.com/view/9qsst

добавлено:
Причем ладно с логикой и высокими материями типа рекурсии или с исключениями...
Но даже метод isSuspendedRecId() не реализовали. Суки.
Вот какой-то "архитектор" это ж утверждал.
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 09.12.2020 в 13:10.
Старый 09.12.2020, 13:19   #10  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,909 / 5730 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mazzy Посмотреть сообщение
добавлено:
Причем ладно с логикой и высокими материями типа рекурсии или с исключениями...
Но даже метод isSuspendedRecId() не реализовали. Суки.
Вот какой-то "архитектор" это ж утверждал.
Мне кажется что эти методы остались еще со времен Axapta 2.x и их просто не перепроектировали в связи с переходом на суррогатные ключи. Просто конечные разработчики, которые, например, логику разноски закупок и заказов писали, вынуждены были от безысходности этот механизм использовать.
Старый 09.12.2020, 13:23   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от fed Посмотреть сообщение
Мне кажется что эти методы остались еще со времен Axapta 2.x
ах, если бы ты был прав.

добавлено:
а может быть и suspendRecIds не делает stop-world?
может кто знает точно как оно работает?
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 09.12.2020 в 13:26.
Старый 09.12.2020, 13:44   #12  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,909 / 5730 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mazzy Посмотреть сообщение
ах, если бы ты был прав.

добавлено:
а может быть и suspendRecIds не делает stop-world?
может кто знает точно как оно работает?
По крайней мере в Axapta 3.0 этот код нашелся. Более древней аксапты под рукой не было
на всякий случай спрошу - а ты под "потоком" thread в C/C#-смысле подразумеваешь, или аксаптовскую сессию ?
Миниатюры
Нажмите на изображение для увеличения
Название: Axapta3Import.jpg
Просмотров: 90
Размер:	167.8 Кб
ID:	13003  
Старый 09.12.2020, 14:05   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от fed Посмотреть сообщение
По крайней мере в Axapta 3.0 этот код нашелся. Более древней аксапты под рукой не было


Цитата:
Сообщение от fed Посмотреть сообщение
на всякий случай спрошу - а ты под "потоком" thread в C/C#-смысле подразумеваешь, или аксаптовскую сессию ?
в рамках аксапты прежде всего имею в виду пакетный сервер,
на котором в несколько потоков могут выполняться задания.

но ты, конечно, прав, стоит учитывать и просто аксаптовские сессии.
в частности, входящие вызовы аксаптовских веб-сервисов.
обращения через COM, ну и обычные клиенты конечно.

в общем, любое выполнение аксаптовского кода (X++ или CIL)
__________________
полезное на axForum, github, vk, coub.
Старый 09.12.2020, 14:26   #14  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,909 / 5730 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mazzy Посмотреть сообщение
в рамках аксапты прежде всего имею в виду пакетный сервер,
на котором в несколько потоков могут выполняться задания.

но ты, конечно, прав, стоит учитывать и просто аксаптовские сессии.
в частности, входящие вызовы аксаптовских веб-сервисов.
обращения через COM, ну и обычные клиенты конечно.

в общем, любое выполнение аксаптовского кода (X++ или CIL)
Осторожно предположу что заморозка генерации RecId работает в рамках сессии. Так что если ты несколько Threads() породишь (кажется в DAX2012R3 это уже было легальным), то все они будут одну сессию использовать. Ну а если batch parallelism, то каждый батч будет в своей сесии выполняться.
Старый 09.12.2020, 14:28   #15  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
В PU38 работает. Но когда-то был период, когда не работало, это правда.
в PU35 точно не работает
У меня на проекте из-за этого некоторое время назад пришлось тучу кода перелопатить((((((( который делался ещё в эпоху работавших navigation property...
__________________
С уважением,
Вячеслав
За это сообщение автора поблагодарили: sukhanchik (4).
Старый 09.12.2020, 15:18   #16  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,320 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Сейчас еще (PU38) пока только Intellisense отстает при переопределении названия метода (выпадает не переопределенное название). Но если не обращать внимание на Intellisense - все компилируется без ошибок.
__________________
Возможно сделать все. Вопрос времени
Старый 09.12.2020, 16:31   #17  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от mazzy Посмотреть сообщение
Вот какой-то "архитектор" это ж утверждал.
Так а ты думаешь что есть какой-то архитектор языка? ну т.е. может быть он и был, но сейчас что-то я не слышал о такой должности, есть Joris de Gruyter, который такими вопросами особо не интересуется, может быть только исключительно с точки зрения поддержки
Старый 09.12.2020, 16:57   #18  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от trud Посмотреть сообщение
Так а ты думаешь что есть какой-то архитектор языка? ну т.е. может быть он и был, но сейчас что-то я не слышал о такой должности, есть Joris de Gruyter, который такими вопросами особо не интересуется, может быть только исключительно с точки зрения поддержки
не, не думаю, что есть "архитектор языка".
но у каждой конкретной фичи ответственный за нее архитектор есть.

как подсказал fed, класс systemSequence существовал еще в ax3.0
как было тогда - не знаю.

но вижу, что обвязка "appl.sysRecIdSequence()" появилась в ax2012.
вот у нее архитектор был.

Был в Майкрософте человек, который принял решение
* вместо того, чтобы добавить в ядро, в класс systemSequence метод isSuspendedRecId,
* добавить класс-wrapper с Set, а всех программистов заставить соблюдать паттерн "appl.sysRecIdSequence()" (иначе класс-wrapper будет работать неправильно)
__________________
полезное на axForum, github, vk, coub.
Старый 09.12.2020, 17:54   #19  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
Почему не сделали?
Именно так и сделали.
Не. Я по другое.
Я вот подумал, а что мешало сделать kernel метод на буфере - выделить RecId и заполнить им поле common.RecId и взвести флажок чтобы на вставке оно не перезатиралось.

Самое простое и удобное решение. И никаких огородов городить не надо с SystemSequence
Старый 09.12.2020, 18:33   #20  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
А...
изначально хотели отдать генерацию recID SQL-серверу.
Цитата:
Сообщение от mazzy Посмотреть сообщение
В принципе, решали проблему "медленной генерации ключевых полей". С прицелом передать генерацию RecId на SQL server. И даже попытаться воспользоваться родным SQL-ным autoIncrement-ом.
__________________
полезное на axForum, github, vk, coub.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
stoneridgesoftware: Daylight Savings Time Adjustment Not Available for Batch Jobs in Dynamics 365 Finance and Operations Blog bot DAX Blogs 0 07.03.2019 03:29
D365FO - Ошибка Keyword not supported: 'pwd=@cgo' в AdminUserProvisioning MarinaAX DAX: Администрирование 4 16.11.2018 01:43
dynamicsaxse: November 2018 Release – Dynamics AX2012 R3 update Blog bot DAX Blogs 0 15.11.2018 09:11
Быстродействие метда TaxParameters::find Ace of Database DAX: Программирование 7 01.06.2017 11:46
axaptapedia: Current Time Blog bot DAX Blogs 1 29.11.2010 22:11

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:55.