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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.03.2016, 15:26   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
есть стандартный метод для экранирования спецсимволов в прямом запросе SQL?
дурацкий вопрос. использую внешний запрос Statement. пользователь передает параметр по которому надо отфильтровать. параметр надо вставить в условие where.

есть ли штатный метод, чтобы экранировать спецсимволы для SQL?
типа SysQuery::value. только для SQL
Старый 17.03.2016, 16:12   #2  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Есть SqlSystem.sqlLiteral(). Он вроде как приводит anytype к нужному виду. Но экранирует ли - тут я не уверен. Как используется, можно глянуть в \Classes\SQLBuilderValueNode\doGetExpression.
__________________
За это сообщение автора поблагодарили: mazzy (2).
Старый 17.03.2016, 16:17   #3  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
873 / 649 (23) +++++++
Регистрация: 14.10.2004
http://stackoverflow.com/questions/1...ored-procedure
За это сообщение автора поблагодарили: mazzy (2).
Старый 17.03.2016, 17:29   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Если это просто строковой литерал, то я думаю достаточно заэкранировать кавычки (') удвоив их.

В общем случае всё сложнее https://technet.microsoft.com/ru-ru/...=sql.105).aspx
За это сообщение автора поблагодарили: mazzy (2).
Старый 17.03.2016, 20:13   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Какой интересный метод...
А какие у него интересные параметры...
А какие у него перекрестные ссылки! А кто это у нас тут напрямую в базу лезет!

Спасибо!
Я так и думал, что что-то подобное обязательно уже есть.

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
В общем случае всё сложнее https://technet.microsoft.com/ru-ru/...=sql.105).aspx
Угу.
Поэтому и спрашиваю.
Старый 22.03.2016, 02:49   #6  
kgksoft is offline
kgksoft
Участник
 
37 / 107 (4) +++++
Регистрация: 24.12.2003
Cделали себе метод в глобале. Тонны SQL через него преобразуются. У sqlLiteral ограничение кажется 128 символов.

X++:
static str any2sql(anytype _value)
{
    #define.LEN_FOR_SPLIT(100)

    SqlSystem sqlSystem = new SqlSystem();
    int i,nLen;
    str ret,curSubStr;

    if (typeOf(_value) == Types::String)
    {
        nLen = strLen(_value);
        if (nLen <= #LEN_FOR_SPLIT)
        {
            return sqlSystem.sqlLiteral(_value);
        }

        while (nLen)
        {
            curSubStr = subStr(_value, 1, #LEN_FOR_SPLIT);
            curSubStr = sqlSystem.sqlLiteral(curSubStr);
            if (ret)
            {
                ret = subStr(ret, 1, strLen(ret)-1) + subStr(curSubStr, 3, strLen(curSubStr)-2);
            }
            else
            {
                ret = curSubStr;
            }
            _value = subStr(_value, #LEN_FOR_SPLIT + 1, nLen);
            nLen = strLen(_value);
        }

        return ret;
    }

    return sqlSystem.sqlLiteral(_value);
}
Старый 22.03.2016, 10:37   #7  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Даже страшно представить зачем вам тонны SQL...
Старый 22.03.2016, 16:24   #8  
kgksoft is offline
kgksoft
Участник
 
37 / 107 (4) +++++
Регистрация: 24.12.2003
Цитата:
Сообщение от skuull Посмотреть сообщение
Даже страшно представить зачем вам тонны SQL...
Много интеграции со сторонними системами. Выгрузки изменений
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxbi: Better together: Microsoft Dynamics AX 2012 R2 and SQL Server Power View Blog bot DAX Blogs 0 12.12.2012 13:11
Условие выбора в запросе поместить в метод bodeaux DAX: Программирование 4 24.10.2012 16:29
axinthefield: SQL Server Lock Escalation and Blocking Blog bot DAX Blogs 0 25.06.2011 20:14
emeadaxsupport: Reporting Extensions Installation Fails to install on SQL 2008 Reporting services after applying 959494 and 957312 Blog bot DAX Blogs 1 23.06.2011 14:27
Dynamics AX Sustained Engineering: SQL Server 2005 sp3 & SQL Server 2008 with Dynamics AX Blog bot DAX Blogs 0 12.02.2009 06:08
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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