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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.08.2009, 13:31   #1  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
376 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Ну, приближенно можно посчитать с помощью метода fieldSize() на SysDictField:

X++:
static void Job2(Args _args)
{
    SysDictTable dictTable = SysDictTable::newName(tableStr(InventTable));
    SysDictField dictField;
    Counter      fieldCnt;
    int          recordSize;
    ;
    for (fieldCnt = 1; fieldCnt <= dictTable.fieldCnt(); fieldCnt++)
    {
        dictField = SysDictField::newName(dictTable.name(), dictTable.fieldName(dictTable.fieldCnt2Id(fieldCnt)));
        recordSize += dictField.fieldSize();
    }
    info(int2str(recordSize));
}
p.s. надо конечно учитывать все типы и array поля и т.д.
плюс служебную информацию заголовка сообщения при передаче по сети.
Вообще конечно, есть аналогичный метод на SysDictTable - recordSize - делает все то, что в job'е, только вот сильно приближенный результат получается

Например, fieldSize считает, что поля типа Enum занимают 1 байт, а в реальности все 4 (DAX 4.0 MS SQL 2005)
X++:
        case Types::Enum:
            size = 1;
            break;
Для типа Date и DateTime - считает, что всего используется по 4 байта
X++:
        case Types::Date:
        case Types::DateTime:
        case Types::Integer:
            size = 4;
            break;
Но на самом деле там все 8 (в смысле на MS SQL Server)

Так, что я бы с осторожностью считал размер записи данным способом

Кстати, еще есть размер записи в таблице трассировки SQL операторов Администирование\Запросы\База данных\Журнал трассировки операторов SQL, вкладка Разное, только не понятно, насколько этот параметр соотвествует действительности и пронаблюдать его значение можно, только в случае есть SQL оператор попал в трассировку (но все таки этому параметру я доверяю больше, чем SysDictTable\recordSize)

P.S. Не видел предыдущего сообщения когда писал
__________________
Sergey Nefedov

Последний раз редактировалось SRF; 07.08.2009 в 13:39. Причина: p.s.
Теги
sql, запись

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Цветные строки в Grid Sergo DAX: База знаний и проекты 14 19.04.2012 10:02
AX4: Кнопка "Сценарий" в паспорте записи Den Ram DAX: Функционал 2 19.04.2007 13:53
При создании строки в закупке статус строки становится "Отменено" AlexUnik DAX: Функционал 4 27.09.2004 16:05
Автоматическое увеличение значения поля при создании новой записи. sguryev DAX: Программирование 3 06.02.2003 14:00
Строки журналов Андре DAX: Программирование 14 08.08.2002 10:02

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

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

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