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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.08.2006, 14:09   #3  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Thumbs up Microsoft жжёт
Нет, я просто тащусь от этой компании ))

По приведенной мази ссылке, цитирую:
Цитата:
Direct SQL
When direct SQL is used through the Connection and Statement classes, it is subject to SQL injection threats. Classes that wrap these kernel classes—for example, the SysSQLBuilder classes—are equally dangerous. You should keep in mind that record-level security and field-level security are not enforced on the Statement class.
To learn more about SQL injection attacks, see the article, Stop SQL Injection Attacks Before They Stop You, on MSDN.
Ля-ля-ля - не юзайте прямой SQL пока он не поюзал Вас.

Открываем Читвёртую Аксапту, и что мы там видим? Правильно! Прямой SQL)))

X++:
/* This method will build following statement in a str: 
  
execute sp_executesql N'UPDATE InventSum 
    SET InventSum.CostAmountPhysical     = InventSum.CostAmountPhysical            + 
                                           InventSumDelta.SUM_CostAmountPhysical, 
        InventSum.PostedValue            = InventSum.PostedValue                   + 
                                           InventSumDelta.SUM_PostedValue, 
        InventSum.Qty                    = InventSum.Qty                           + 
                                           InventSumDelta.SUM_Qty, 
        ..... 
        ..... 
  
        InventSum.LastUpdDatePhysical    = CASE WHEN InventSum.LastUpdDatePhysical > InventSumDelta.MAX_LastUpdDatePhysical 
                                                THEN InventSum.LastUpdDatePhysical 
                                                ELSE InventSumDelta.MAX_LastUpdDatePhysical 
                                           END, 
  
        InventSum.LastUpdDateExpected    = CASE WHEN InventSum.LastUpdDateExpected > InventSumDelta.MAX_LastUpdDateExpected 
                                                THEN InventSum.LastUpdDateExpected 
                                                ELSE InventSumDelta.MAX_LastUpdDateExpected 
                                           END, 
  
        InventSum.ClosedQty              = CASE WHEN ((InventSum.PostedQty + InventSumDelta.SUM_PostedQty) = 0 AND 
                                                      (InventSum.Deducted  + InventSumDelta.SUM_Deducted)  = 0 AND 
                                                      (InventSum.Picked    + InventSumDelta.SUM_Picked)    = 0 AND 
                                                      .... 
                                                      .... 
                                                     ) 
                                                THEN 1 
                                                ELSE 0 
                                           END, 
        InventSum.Closed                 = CASE WHEN ((InventSum.PostedValue    + InventSumDelta.SUM_PostedValue)  = 0 AND 
                                                     (InventSum.PhysicalValue  + InventSumDelta.SUM_PhysicalValue) = 0 AND 
                                                      .... 
                                                      .... 
                                                     ) 
                                                THEN 1 
                                                ELSE 0 
                                           END 
    FROM (SELECT SUM(CostAmountPhysical)    AS SUM_CostAmountPhysical, 
                 SUM(PostedValue)           AS SUM_PostedValue, 
                 SUM(Qty)                   AS SUM_Qty, 
                 .....                      AS ..., 
                 .....                      AS ..., 
                 MAX(LastUpdDatePhysical)   AS MAX_LastUpdDatePhysical, 
                 MAX(LastUpdDateExpected)   AS MAX_LastUpdDateExpected, 
                 InventSumDelta.ItemId, 
                 InventSumDelta.InventDimId 
          FROM InventSumDelta 
          WHERE InventSumDelta.DataAreaId   = @p1 
          AND   InventSumDelta.TTSId        = @p2 
          AND   InventSumDelta.IsAggregated = 0 
          GROUP BY InventSumDelta.ItemId, InventSumDelta.InventDimId 
         ) AS InventSumDelta 
    WHERE InventSum.DataAreaId        = @p1 
    AND   InventSum.ItemId            = InventSumDelta.ItemId 
    AND   InventSum.InventDimId       = InventSumDelta.InventDimId 
',N'@p1 NVARCHAR(3), @p2 BIGINT',@p1=%1, @p2='%2'
Прошу завести пользователя Майкрософт, я ему рейтинг понижать/повышать буду))
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Теги
что нового, ax3.0, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как сделать AND между двумя датасорсами на одном уровне в query rkorchagin DAX: Программирование 15 15.01.2009 17:42
Разница между запросами Rect DAX: Программирование 13 05.12.2006 12:44
Расчеты между компаниями Yuri Nikitenko DAX: Функционал 9 15.11.2004 08:49
различие между Axapta и Attain andreynikolai DAX: Программирование 4 04.02.2004 17:53
дизайн отчета (как сделать его с разделителями между столбцами?) puz DAX: Программирование 7 02.09.2003 08:50
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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