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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.05.2025, 05:37   #1  
oleggy is offline
oleggy
Участник
 
282 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
Привет. Подниму старую тему.
Если в таблице Table1 указаны значения, допустим:
'\\SERVER\Folder1'
'\\SERVER\Folder2'
'\\SERVER\Folder3'

И если стоит задача выбрать все значения по фильтру '\\SERVER\*' то оператор like в AX требует что бы синтаксис был такой: select table1 where like @'\\\\SERVER\\*'
или без @: select table1 where like '\\\\\\\\SERVER\\\\*'
Т.е. почему нужно экранировать символ '\' четыре раза?

Последний раз редактировалось oleggy; 27.05.2025 в 05:41.
Старый 27.05.2025, 05:56   #2  
Pandasama is offline
Pandasama
Участник
 
465 / 140 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Потому что в like например * - означает "любые символы"
Если ты хочешь искать конкретно * - надо её экранировать \*
Соответственно, символ \ является служебным, и чтобы использовать его не как служебный, а как просто косую черту - надо его экранировать \\
Старый 29.05.2025, 15:23   #3  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от Pandasama Посмотреть сообщение
Потому что в like например * - означает "любые символы"
Если ты хочешь искать конкретно * - надо её экранировать \*
Соответственно, символ \ является служебным, и чтобы использовать его не как служебный, а как просто косую черту - надо его экранировать \\
В данном случае экранируется именно backslash, а не asterisk.
__________________
// no comments
Старый 29.05.2025, 15:32   #4  
Pandasama is offline
Pandasama
Участник
 
465 / 140 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Да, я описал почему он экранируется, например
Старый 27.05.2025, 16:37   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от oleggy Посмотреть сообщение
Т.е. почему нужно экранировать символ '\' четыре раза?
Потому что нужно преодолеть два уровня экранирования. Один на x++, другой на SQL. Каждый уровень экранирования требует удвоения обратного слеша.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: AX Performance - Analyzing key SQL Server configuration and database settings Blog bot DAX Blogs 0 28.09.2015 14:11
aEremenko: Использование прямых запросов SQL Blog bot DAX Blogs 4 18.07.2007 10:09
Dynamics AX: SQL Server, Heart of Dynamics AX Blog bot DAX Blogs 0 13.07.2007 18:00
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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